如何解决日期格式化程序没有为使用相同日期格式化程序生成的日期字符串重新调整正确的日期
我正在使用日期格式化程序将时间戳转换为日期字符串,并使用相同的格式化程序从日期字符串中获取日期。从时间戳到日期字符串的转换工作正常。但是当从日期字符串创建日期时,我得到了同样的错误日期。
func getDateFormatter() -> DateFormatter {
let dateFormatter = DateFormatter()
dateFormatter.timeZone = .current
dateFormatter.dateFormat = "dd MMM YYYY"
return dateFormatter
}
func getDate(from dateString: String) -> Date? {
print("Date String: ",dateString)
let dateFormatter = getDateFormatter()
return dateFormatter.date(from: dateString) ?? nil
}
func getDateString(from timestamp: Double) -> String {
let dateFormatter = getDateFormatter()
let date = Date(timeIntervalSince1970: timestamp)
let dateString = dateFormatter.string(from: date)
return dateString
}
func getDateStringForHeaderText(dateString: String) -> String {
guard let date = getDate(from: dateString) else {
print("Could not get date for generting header string")
return dateString
}
print("Date: ",date)
if Calendar.current.isDateInToday(date) { return "Today"}
if Calendar.current.isDateInYesterday(date) {return "Yesterday"}
return dateString
}
当为 2 个不同的日期字符串调用 getDateStringForHeaderText
时,我得到了相同的错误日期。
Date String: 14 Jan 2021
Date: 2020-12-19 18:30:00 +0000
Date String: 15 Jan 2021
Date: 2020-12-19 18:30:00 +0000
有些地方提到不要设置时区,因为默认使用 .current。用于生成这些日期的时间戳是使用 NSDate().timeIntervalSince1970
保存的。但我觉得自从我从日期字符串中切掉了时间部分,时区应该没什么关系。我错过了什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。