我使用firebase作为后端并存储一串时间,如下午7:00.
我正在尝试转换从Firebase收到的字符串并将其转换为NSDate,以便我可以对其进行排序,更改时间..等等
到目前为止,我已经在线查看了这段代码
dateFormatter.dateFormat = "hh:mm a"
dateFormatter.locale = NSLocale.current
dateFormatter.timeZone = NSTimeZone.local
let date = dateFormatter.date(from: item)
self.times.append(date!)
print("Start: \(date)")
Run Code Online (Sandbox Code Playgroud)
item是字符串(晚上7点)
当我运行应用程序时,控制台返回:
项目:上午9:00
开始:可选(2000-01-01 05:00:00 +0000)
我设置了时区,区域设置,格式.为什么返回的时间不正确?
打印出一些其他例子:
项目:下午1:20
开始:可选(2000-01-01 17:20:00 +0000)
项目:上午9:40
开始:可选(2000-01-01 05:40:00 +0000)
项目:上午10:00
开始:可选(2000-01-01 05:00:00 +0000)
项目:中午12:00
开始:可选(2000-01-01 17:00:00 +0000)
我正在使用当前的日期/时间[NSDate date].返回的值是将来一小时.我检查了我的手机位置和时间设置,它们是正确的.
我可以使用下面的代码将正确的日期和时间显示为字符串.
[NSDateFormatter localizedStringFromDate:[NSDate date] dateStyle:NSDateFormatterShortStyle
timeStyle:NSDateFormatterShortStyle]
Run Code Online (Sandbox Code Playgroud)
但我需要它将正确的日期/时间作为日期对象返回,因为我使用它来计算预计到达时间 -
[date dateByAddingTimeInterval:interval]
Run Code Online (Sandbox Code Playgroud)
我意识到我的问题类似于已经问过的问题,但没有一个答案符合我的需要.提前致谢!