2015-10-13 35 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類。