Swift 3.0 - 日历startOfDay方法返回凌晨3点

时间:2017-03-01 15:51:22

标签: swift nscalendar

我刚刚开始使用Swift 3.0 Calendar方法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

然后我将一个整数值(timeIntervalSince1970)保存到Firebase,在那里我可以看到错误的日期为凌晨3点。这是我用来生成我保存到Firebase的Int值的代码片段

let startofDay = Calendar.current.startOfDay(for: productionDate)
let dateValue = Int(startofDay.timeIntervalSince1970)

就像我说的那样,大部分时间,时间都是正确日期的午夜,但是当应用程序在后台从Web服务获取时,我偶尔会看到凌晨3点进入Firebase数据库。

我知道我在这里没有提供大量信息。我真的希望有人遇到同样的问题并找到解决问题的方法,或者有人可以查看我的代码并告诉我我是如何成为傻瓜的。

谢谢!

1 个答案:

答案 0 :(得分:-4)

我终于能够重现这个问题,它与startOfDay返回凌晨3点无关。我正在发布另一个问题,试图找出真正问题的答案。