我正在使用该库作为日历:https://github.com/CVCalendar/CVCalendar
然后我尝试获取用户的当前日期和时间,以便在日历中显示正确的日期。
但是当我尝试执行print("Date: \(Date())")
时,我得到以下输出:
2019-11-19 14:32:03 +0000
但是,如果这是正确的,则应该是这样的:
2019-11-19 15:32:03 +0000
(我住在挪威)。所以给我一个小时的错误。
关于做什么的任何提示?
答案 0 :(得分:2)
日期独立于特定的日历或时区。至 代表用户的日期,您必须在 日历。
您需要Calendar
的帮助:
let calendar = Calendar(identifier: .gregorian)
let currentDate = Date()
print(calendar.dateComponents(in: calendar.timeZone, from: currentDate))
输出将是:
calendar: gregorian (fixed) timeZone: Europe/Bratislava (current) era: 1 year: 2019
month: 11 day: 19 hour: 15 minute: 47 second: 14 nanosecond: 285109996 weekday: 3 weekdayOrdinal: 3 quarter: 0 weekOfMonth: 4 weekOfYear: 47 yearForWeekOfYear: 2019 isLeapMonth: false
因此您可以随后访问calendar
的组件,例如hour
,minute
等。
@Camile使用DateFormatter
在评论中回答了他:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss:Z"
dateFormatter.timeZone = calendar.timeZone
dateFormatter.string(from:currentDate)
会给你
2019-11-19 16:38:03:+0100