2015-10-13 85 views
3

我注意到,当我在斯威夫特操场,到NSDate的()的调用生成这种格式的日期:的NSDate() - 游乐场与斯威夫特的Xcode

< date time AM|PM > 

然而,Xcode中/应用程序里面, NSDate()生成这种格式的日期

< date time UTC > 

我不清楚为什么有这样的区别?我如何强制xcode始终生成NSDate为< date time AM|PM >

回答

6

NSDate用于表示时间点。它没有任何格式的概念。 要用于打印的NSDate的内容是什么NSDateFormatter

let dateFormatter = NSDateFormatter() 
dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle 
dateFormatter.timeStyle = NSDateFormatterStyle.MediumStyle 
print(dateFormatter.stringFromDate(NSDate())) 
5

NSDate doesen't没有任何时区本身的概念。从文档

的NSDate,timeIntervalSinceReferenceDate的唯一原始的方法, 提供在的NSDate界面中的所有其他方法的基础。 00:00 UTC 1月1日2001年

在操场上,如果你只是写let date = NSDate()它做某种类型的日期格式的自身 这种方法 日期-00返回相对于绝对参考时间值(这很有趣,但不应该被期望)。如果你print(date)如果会告诉你实际包含的日期。

enter image description here

如果要格式化您的应用程序内的约会,你应该看看使用NSDateFormatter类。