簡體   English   中英

嘗試在iOS Swift 3中使用dateFormatter時為什么會得到nil?

[英]Why get nil when try to using dateFormatter in iOS Swift 3?

我嘗試將日期與String格式轉換為日期格式,如下所示:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"             
let date = dateFormatter.date(from: "2017-03-22")

但是獲得零價值。

我設置

dateFormatter.locale = Locale(identifier: "en_US_POSIX") 

但不起作用......
請幫忙解決這個問題。

我想你的設備日歷設置為與默認的公歷日歷不同,添加此行將解決問題:

dateFormatter.calendar = Calendar(identifier: .gregorian)

另外我注意到你的日期沒有嵌入任何時區,如果你有一個固定的時區,也添加這一行:

dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
// Replace "UTC" with your desired timezone

最終的代碼是這樣的:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"             
dateFormatter.calendar = Calendar(identifier: .gregorian)
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
let date = dateFormatter.date(from: "2017-03-22")

解決了

我補充道

dateFormatter.calendar = Calendar(identifier: .gregorian)   

腳本和正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM