Swift 未发生从字符串的日期转换
我有一个日期在2018年5月31日下午3点35分的Swift 未发生从字符串的日期转换,swift,nsdate,nsdateformatter,Swift,Nsdate,Nsdateformatter,我有一个日期在2018年5月31日下午3点35分的order\u date格式中 我正在把它转换成日期,就像这样 if let order_date = value["order_date"] as? String { let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" let date = dateFormatter.date(from: order_date) }
order\u date
格式中
我正在把它转换成日期,就像这样
if let order_date = value["order_date"] as? String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let date = dateFormatter.date(from: order_date)
}
但我得到的日期是零。可能是什么问题?您的日期格式错误,请将格式更改为
dateFormatter.dateFormat = "MMMM dd, yyyy 'at' hh:mm a"
例如,如果您的月份为Mar
则使用-MMM,如果您的月份为March
则使用-MMMM
你可以查一下日期格式
完整的答案
if let order_date = value["order_date"] as? String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMMM dd, yyyy 'at' hh:mm a"
var date = dateFormatter.date(from: order_date)
if date == nil{
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
date = dateFormatter.date(from: order_date)
}
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let myStringafd = dateFormatter.string(from: date!)
print(myStringafd)
}
有关MT转换的详细日期,请将代码替换为以下内容:
if let order_date = value["order_date"] as? String
{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMM dd, yyyy 'at' hh:mm a"
let date = dateFormatter.date(from: order_date)
}
日期是否符合您给出的格式?我不认为在'hh:mm a'@FredericP我以这种格式发送时,会像这样更改您的日期格式化程序。
yyy-mm-dd hh:mm:ss
。但在服务器中,某些日期的格式为2018年5月31日下午3:35。因此,问题是…@bwv-您得到的输入和您期望的OP是什么。@Anbu.karthik“mm dd,yyyy”在“hh:mm a”
处的格式并不总是这样。它可以是am
或pm
,但@Anbu.karthik不是“MMMM dd,yyyyy”在“hh:mm a”
总是在上午?在我的情况下,可能是上午或下午PM@bwv-根据时间格式,它将更改为上午或下午,这是12小时的日期格式。@Anbu.karthik在您给出的答案中,我们是否应该给出检查日期格式的if条件。。?因为我将在订单中获得的日期可以是'hh:mm a'处的格式“MMMM dd,yyyy”或“yyy-mm dd hh:mm:ss”
@bwv-检查更新的答案