swift 4 中格式化日期的问题
Issue in formatting Date in swift 4
我在 swift 4 中格式化日期时遇到问题
下面提供格式化源代码时HH:mm:ss获取错误数据的时间。
let dateFormatter : DateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MMM-yyyy HH:mm:ss a
let date = Date()
let dateString = dateFormatter.string(from: date)
我得到的结果是:2020 年 8 月 11 日 12:01:23 下午
如果我尝试将字符串日期的结果转换为日期
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MMM-yyyy HH:mm:ss a"
let serverDate: Date = dateFormatter.date(from: dateString)!
我得到的结果是:2020-08-11 06:31:39 +0000
预期必须是:2020-08-11 12:01:23 +0000
但我得到的结果是:2020-08-11 06:31:39 +0000
有知道解决方法的请给我一个解决方法
HH:mm:ss
为您提供 24 小时格式的时间,因此 a
在格式中没有意义。或者你可以使用 hh:mm:ss a
.
Date()
给你 UTC
的时间。您需要提供时区信息以获取您所在时区的日期。
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MMM-yyyy HH:mm:ss"
dateFormatter.timeZone = .current
let localDate = dateFormatter.string(from: date)
print(localDate)
localDate
将为您提供当前时区的日期。
问题出在你的格式上。如果您尝试使用 dateFormat = "dd-MMM-yyyy HH:mm:ss"
,您将获得预期的结果。另外,我建议您设置 locale 和 timezone。例如:
let dateFormatter: DateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.timeZone = NSTimeZone.local
dateFormatter.dateFormat = "dd-MMM-yyyy HH:mm:ss"
let date = Date()
let dateString = dateFormatter.string(from: date)
let serverDate: Date = dateFormatter.date(from: dateString)!
我在 swift 4 中格式化日期时遇到问题 下面提供格式化源代码时HH:mm:ss获取错误数据的时间。
let dateFormatter : DateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MMM-yyyy HH:mm:ss a
let date = Date()
let dateString = dateFormatter.string(from: date)
我得到的结果是:2020 年 8 月 11 日 12:01:23 下午
如果我尝试将字符串日期的结果转换为日期
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MMM-yyyy HH:mm:ss a"
let serverDate: Date = dateFormatter.date(from: dateString)!
我得到的结果是:2020-08-11 06:31:39 +0000
预期必须是:2020-08-11 12:01:23 +0000
但我得到的结果是:2020-08-11 06:31:39 +0000
有知道解决方法的请给我一个解决方法
HH:mm:ss
为您提供 24 小时格式的时间,因此 a
在格式中没有意义。或者你可以使用 hh:mm:ss a
.
Date()
给你 UTC
的时间。您需要提供时区信息以获取您所在时区的日期。
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MMM-yyyy HH:mm:ss"
dateFormatter.timeZone = .current
let localDate = dateFormatter.string(from: date)
print(localDate)
localDate
将为您提供当前时区的日期。
问题出在你的格式上。如果您尝试使用 dateFormat = "dd-MMM-yyyy HH:mm:ss"
,您将获得预期的结果。另外,我建议您设置 locale 和 timezone。例如:
let dateFormatter: DateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.timeZone = NSTimeZone.local
dateFormatter.dateFormat = "dd-MMM-yyyy HH:mm:ss"
let date = Date()
let dateString = dateFormatter.string(from: date)
let serverDate: Date = dateFormatter.date(from: dateString)!