我刚刚开始使用Swift 3.0日历方法startOfDay。它在大多数情况下都很有效,但有时它会在返回日期的凌晨3点返回。我从web服务获取productionDate,使用以下方法从Unix样式的字符串转换它

static let dateFormatString = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"

static func dateForDateString(dateString: String) -> Date?
{
    let formatter = DateFormatter()
    formatter.dateFormat = dateFormatString

    return formatter.date(from: dateString)
}

日期/时间字符串示例
2017-03-01T09:38:05-05:00

然后我将保存一个整数值(TimeIntervalsSince1970)到Firebase,在那里我可以看到错误的日期是凌晨3点。下面是我用来生成保存到Firebase的Int值的一段代码
let startofDay = Calendar.current.startOfDay(for: productionDate)
let dateValue = Int(startofDay.timeIntervalSince1970)

就像我说的,大多数情况下,时间都是正确日期的午夜,但是当应用程序从后台的web服务获取数据时,我偶尔会看到凌晨3点弹出到Firebase数据库中。
我知道我在这里没有提供很多信息。我真的希望有人也有同样的问题,并找出一个方法来解决它,或者有人可以看看我的代码,告诉我如何成为一个笨蛋。
谢谢!

最佳答案

我终于可以复制这个问题,它与startOfDay返回凌晨3点无关。我正在发帖另一个问题,试图找出真正问题的答案。

10-08 06:29