[英]Conversion from string to date in swift returns nil
我在 swift 3 中將字符串轉換為日期時遇到問題。這是我的代碼,它在轉換時返回一個 nil 值。
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE, dd MMM yyyy hh:mm:ss +zzzz"
dateFormatter.locale = Locale.init(identifier: "bg_BG")
let recdate = dateFormatter.date(from:"Fri, 10 Mar 2017 15:03:03 +0530")!;`
您為小時和時區設置了錯誤的格式說明符。 用這個:
dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss Z"
dateFormatter.locale = Locale(identifier: "en_US")
hh
表示 12 小時制,因此沒有 15 小時。請改用HH
+zzzz
是無效的時區說明符。 使用Z
代替Fri
,否則請使用英語語言環境您有幾個問題,首先,正如 Code Different 所指出的,您需要使用 HH 來讀取 24 小時制時間。 但是,您還指定了語言環境,這意味着“單詞”部分必須是保加利亞語,而不是英語。 離開默認語言似乎工作正常:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss +zzzz"
//dateFormatter.locale = Locale.init(identifier: "bg_BG")
let recdate = dateFormatter.date(from:"Fri, 10 Mar 2017 15:03:03 +0530")!
如果您要使用保加利亞的日期和月份名稱,您的格式應該可以工作。
dateFormatter.date(from:"нд, 10 март 2017 15:03:03 +0530")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.