【问题标题】:Convert NSDate to Integer, Swift 3将 NSDate 转换为整数,Swift 3
【发布时间】:2017-06-04 20:33:10
【问题描述】:

所以我的目标是将时间从 NSDate 转换为整数,但是我不确定如何去做。我尝试过进行简单的转换,例如 Int(...) 但是它不起作用。这是因为字符串包含 AM 或 PM 吗?我真的很感激任何帮助试图让时间成为一个整数。谢谢。

var firstDate = DateFormatter.localizedString(from: NSDate() as Date, dateStyle: DateFormatter.Style.none, timeStyle: DateFormatter.Style.short)

这是在视图确实加载部分中生成的。再次感谢任何帮助,谢谢。

编辑:

很抱歉阅读了这个问题,对于我所追求的可能并不是特别清楚。我希望能够找到两个不同 NSDate 之间的时间差异。这将进一步用作倒计时功能。与此相关的问题是我不确定我将如何减去两个字符串。因此,我想如果我可以将小时、分钟和秒更改为整数,那么我可以减去它们。我需要帮助的是我可以实现这一目标的任何方式。也许将值更改为间隔是一种不好的方法,但这只是我的一个想法,我愿意接受任何建议。

【问题讨论】:

  • 你需要整数做什么?

标签: swift type-conversion int nsdate


【解决方案1】:

这取决于整数应该代表什么。可以通过从另一个日期获取时间间隔来获得秒数。例如:

let date1 = Date()
let date2 = Date.init(timeInterval: 12345, since: date1)

let timeInterval = Int(date2.timeIntervalSince(date1))
// timeInterval = 12345 and is an int, the unit is seconds

因此,您不要减去字符串,而是直接使用 Date 或 NSDate...

【讨论】:

  • 抱歉问题不是特别清楚,我添加了一个编辑,更详细地解释了我的目标
  • 好的,我根据您更新的问题更新了我的答案。
  • 好的,所以它还是有点不对劲。很难准确地解释我想要什么,但我需要确定日期二是从日期一开始的时间。我在这里有一个如何使用它的例子。日期一 = 上午 10:00 日期二 = 上午 10:23 (日期二将是每秒更新一次,将是当前日期和时间。日期一将是应用程序启动的时间)因此(日期一 - 日期二) = 自应用启动以来的时间
  • 如果我理解正确,这就是我的示例代码所做的。 Time2 - time1 表示为以秒为单位的整数。
  • 是的,但是日期二不是当前时间?您的示例代码适用于一组整数。我所需要的只是找到一种将日期二(即当前时间)转换为整数的方法。在这样做时,我可以将当​​前时间从上一次(日期一)中取出来找到时间间隔。您的示例代码已经在反向工作。例如。初始时间为 0,然后您添加 12345。因此日期 2 - 日期 1 将再次给您 12345?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多