【问题标题】:Convert formatted date to NSDate将格式化日期转换为 NSDate
【发布时间】:2016-09-15 09:45:34
【问题描述】:

我有一个应用程序可以显示一天中时间的表格视图(海洋潮汐)。我想要做的是能够点击一个时间并安排一个本地通知在那个时候触发。

如果我在点击单元格时打印出日期,我会得到“5/18/2016 03:31 AM”。但是,如果我将其作为 fireDate 对象传入,则通知的 fireDate 为“nil”

如果我只是创建一个 NSDate 对象在点击单元格 15 秒后触发,那么 fireDate 是:“2016 年 5 月 18 日,星期三,下午 2:14:11”

所以我想真正的问题是,如何将“5/18/2016 03:31 AM”转换为“2016 年 5 月 18 日星期三 3:31:00 AM”?

谢谢!

【问题讨论】:

  • 您不应该从单元格中检索日期字符串。你应该回到你的模型。问题是您的cellForRowAtIndexPath 首先是如何检索/创建要放入单元格的字符串。你的didSelectRowAtIndexPath 应该回到同一个来源。如何按照您的要求格式化它的答案取决于数据如何存储在您的模型中。如果模型具有NSDate,则表明一种方法。如果它是一个字符串,则建议使用另一种方法(并提出原始字符串所在时区的问题)。
  • 您不能将“5/18/2016 03:31 AM”作为 fireDate 属性传递,因为前者是 String,而后者是 NSDate。请展示你真正在做什么。

标签: ios swift nsdate uilocalnotification


【解决方案1】:

您需要使用NSDateFormatter 将日期格式化为所需的输出。这是您可以做到的方法

let formatter = NSDateFormatter()
formatter.dateStyle = NSDateFormatterStyle.FullStyle
let dateToFire = formatter.dateFromString(datefromcell) //datefromcell is a string that contains the date you got from tapping the tableview cell

有关如何格式化日期的更多信息,请参阅link

希望这会有所帮助。 :)

【讨论】:

  • 谢谢!我错过了该链接中的完整样式和另一个命令。
猜你喜欢
  • 1970-01-01
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
  • 2018-01-28
  • 1970-01-01
  • 2010-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多