我有字符串并转换为日期格式,但是当我转换后,日期显示正确但时间显示格式错误
firsDateString:2019年3月15日上午9:00
secondName:2019年3月15日下午8:00
将字符串转换为日期格式
let addedDate = firsDateString
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MMM-dd hh:mm a"
let date1 = formatter.date(from: addedDate)
print("DATE \(date1)")
此后获取此值:
DATE Optional(2019-03-15 03:30:00 +0000)
如何获取正确的日期格式?
答案 0 :(得分:0)
检查:
let addedDate = firsDateString
let formatter = DateFormatter()
formatter.timeZone = (NSTimeZone(name: "UTC")! as TimeZone)
formatter.dateFormat = "yyyy-MMM-dd hh:mm a"
let date1 = formatter.date(from: addedDate)
print("DATE \(String(describing: date1!))")
答案 1 :(得分:0)
使用like,但不是有效的答案,可能是它根据您的情况而起作用,但按照option2的要求,它将涵盖所有情况
let formatter = DateFormatter()
formatter.dateFormat =“ yyyy-MMM-dd hh:mm a”
let date1 = formatter.date(来自:“ 2019年3月15日9:00 AM”)
formatter.amSymbol =“”
formatter.pmSymbol =“”
让currentDateStr = formatter.string(from:date1!)
print(“ currentDateStr(currentDateStr)”)
基于@JoakimDanielson点
当您不再能分辨早上8点和晚上8点之间的区别时,如何才能接受?
在这里您需要遵循24小时制,我将更新我的答案
选项2
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MMM-dd hh:mm a"
let date1 = formatter.date(from: "2019-Mar-15 9:00 AM")
formatter.dateFormat = "yyyy-MMM-dd HH:mm"
let currentDateStr = formatter.string(from: date1!)
print("currentDateStr \(currentDateStr)")
输出
答案 2 :(得分:-1)
在打印之前,您需要将其转换回字符串
let addedDate = "2019-Mar-15 9:00 AM"
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MMM-dd hh:mm a"
let date1 = formatter.date(from: addedDate)
if let date = date1 {
print(formatter.string(from: date))
}
输出
2019年3月15日上午09:00
如果要在输出中使用24小时格式,则需要更改格式化程序的格式
let addedDate = "2019-Mar-15 8:00 AM"
let secDate = "2019-Mar-15 9:00 PM"
let formatter = DateFormatter()
formatter.timeZone = TimeZone.init(abbreviation: "")
formatter.dateFormat = "yyyy-MMM-dd hh:mm a"
let date1 = formatter.date(from: addedDate)
let date2 = formatter.date(from: secDate)
formatter.dateFormat = "yyyy-MMM-dd HH:mm"
if let date = date1 {
print(formatter.string(from: date))
}
if let date = date2 {
print(formatter.string(from: date))
}
输出
2019年3月15日08:00
2019年3月15日21:00