0
我想解析發送到服務器的日期。快速日期格式化,從服務器獲取日期不一樣發送到服務器
現在從服務器收到的日期是「2016-05-10T22:34:00.000Z」
,這裏是我的代碼來獲得一個格式化的日期從上述日期字符串:
let format="yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let dateFmt = NSDateFormatter()
dateFmt.dateFormat = format
let newreadableDate = dateFmt.dateFromString(dateString)
print(newreadableDate!)
dateFmt.dateFormat = "MMM dd hh:mm a"
print("Formatted date is : \(dateFmt.stringFromDate(newreadableDate!))")
print語句打印結果如下:5月11日上午04時04分
上述結果是完全錯誤的。我應該回到我從服務器收到的日期不同但格式不同的日期。
但newReadableDate變量打印出正確的日期:2016年5月10日22時34分○○秒+0000
但經過我格式化,它給了我錯誤的日期。
上述代碼有什麼問題?
我不明白爲什麼'newReadableDate'以UTC打印日期。我認爲'Z'使日期格式化程序將字符串日期解釋爲UTC,但打印時使用本地時區。我在UTC-4,'newreadableDate'是'2016年5月10日,6:34 PM'。 – paulvs
@paulvs'print'調用正在打印的對象的'description'方法。 'NSDate description'的實現是以UTC時間記錄日期。這就是'+ 0000'的含義。它表示時間正在UTC時間的+0000時區顯示。 – rmaddy
這是真的。我想清楚它爲什麼在我的本地時區顯示時間 - 我使用的是Playground,右側的默認打印似乎使用本地時區而不是默認的UTC時區。 – paulvs