我需要使用这些格式的swift检索日期和时间。快速日期和时间ios
2014-09-19
16:43:00.0
的NSDate()给出的日期和时间在一起,而时间是在错误的格式,没有人知道如何分别得到这些,并在上面显示的格式的时间。
我需要使用这些格式的swift检索日期和时间。快速日期和时间ios
2014-09-19
16:43:00.0
的NSDate()给出的日期和时间在一起,而时间是在错误的格式,没有人知道如何分别得到这些,并在上面显示的格式的时间。
这应该做的伎俩:
let date = NSDate()
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let timeFormatter = NSDateFormatter()
timeFormatter.dateFormat = "HH:mm:ss.S"
println(dateFormatter.stringFromDate(date))
println(timeFormatter.stringFromDate(date))
完美的作品!谢谢 – 2014-10-30 17:01:19
没有本地化让我难过 – Abizern 2014-10-30 19:18:10
要格式化日期,请使用NSDateFormatter。
NSDateFormatter提供了5种不同的样式,但它们都不符合上述格式。 – 2014-10-30 16:54:10
@AbubakarMoallim - NSDateFormatter有几乎无限的样式。 – 2014-10-30 16:58:18
是的,很抱歉,有关于如何指定格式的文档。这是我最不喜欢阅读的东西。 [祝你好运](http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns)。 – 2014-10-30 18:17:47
检查下面的代码 -
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let d = NSDate()
let s = dateFormatter.stringFromDate(d)
println(s)
完美。这对日期有用,那么时间呢? – 2014-10-30 16:55:07
?如果您使用的为内部使用(时间戳交易,将排序字段,以数据库,提交ISO 8601/RFC 3339日期网络服务),您通常会希望确保你也:
使用GMT/UTC;和
指定区域
因此,有可能生成:
let date = NSDate()
let timeZone = NSTimeZone(forSecondsFromGMT: 0)
let locale = NSLocale(localeIdentifier: "en_US_POSIX")
let dateFormatter = NSDateFormatter()
dateFormatter.timeZone = timeZone
dateFormatter.locale = locale
dateFormatter.dateFormat = "yyyy-MM-dd"
let timeFormatter = NSDateFormatter()
timeFormatter.timeZone = timeZone
timeFormatter.locale = locale
timeFormatter.dateFormat = "HH:mm:ss.S"
println(dateFormatter.stringFromDate(date))
println(timeFormatter.stringFromDate(date))
的Technical Q&A QA1480文件讨论了这个在互联网上使用8601/RFC 3339日期ISO的范围内,但当您将这些日期用于内部目的时,这些基本概念同样适用。
如果您在控制台中看到它,这是预期的行为。如果你想拥有自己的显示格式,那么你需要通过nsdateformatter传递它。 – Abizern 2014-10-30 16:47:32