簡體   English   中英

在swift中從字符串到日期的轉換返回nil

[英]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.

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