我正在使用下面的代码来获取组件的一天。我有一个2017-01-08 18:38:00 UTC。我正在使用下面的代码来获取组件的一天。

 var components = calendar.dateComponents([.year, .month, .day,.weekday
      ], from: eventModel.start_date!)
    print("component day is \(String(describing: components.day!))")


但是当我打印日期时,它给我的日期是9,而不是8,所以代码的问题是什么。请指导我如何改进此功能。

最佳答案

打印(calendar.timeZone)。我认为这是您当地的时区。

---------更新-----------

var cps = DateComponents()
cps.year = 2017
cps.month = 1
cps.day = 8
cps.hour = 18
cps.minute = 30

print(cps)

var cal = Calendar(identifier: .gregorian)
let localDate = cal.date(from: cps)!
print(localDate) // 2017-01-08 10:30:00 +0000

let timezone = TimeZone(abbreviation: "UTC")
cal.timeZone = timezone!
let utcDate = cal.date(from: cps)!
print(utcDate) // 2017-01-08 18:30:00 +0000

关于ios - 使用组件日期 swift 增加的一天?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41828474/

10-08 21:00