[英]How to get Date from String in swift 3?
我已经将时间戳保存在数据库中,例如:
"NSDate()" // which save Date like this: 2017-03-10 22:53:30 +0000
现在,我需要从该字符串获取Date,我尝试了每种格式,但始终返回nil。
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss ZZZ"
dateFormatter.locale = Locale(identifier: "en_US")
print(dateFormatter.date(from: "2017-03-10 22:53:30 +0000") ?? "No Value") // always return No Value
在这里,我尝试了多种格式,例如:yyyy-MM-dd hh:mm:ss + zzzz yyyy-MM-dd hh:mm:ss xx
已经看到很多答案,但是没有答案正在使用这种格式的日期“ 2017-03-10 22:53:30 +0000”
军事时间(24小时制)使用大写字母“ H”。 尝试使用以下格式字符串:
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
hh
是12小时的时间。 如果您有24小时的填充时间,则需要HH
。 有关NSDateFormatter格式的更多详细信息,请访问http://nsdateformatter.com 。
我在将String
转换为Date
时使用了此代码。 ( 斯威夫特3 )
extension String
{
func toDate( dateFormat format : String) -> Date
{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
if let date = dateFormatter.date(from: self)
{
return date
}
print("Invalid arguments ! Returning Current Date . ")
return Date()
}
}
然后像这样打电话。 。
print ( "2016-06-20T13:01:46.457+02:00".toDate(dateFormat: "yyyy-MM-dd'T'HH:mm:ss.SSSZ") )
//Capital HH for 24-Hour Time
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.