Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较Swift中的日期忽略当前时区_Swift - Fatal编程技术网

比较Swift中的日期忽略当前时区

比较Swift中的日期忽略当前时区,swift,Swift,在Swift中,我可以使用Calendar.current.dateComponents 问题是,这与我当前的时区不同 let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd HH:mm XXX" let from = zoneFormatter.date(from: "2018-03-25 00:00 +00:00")! let to = zoneFormatter.date(from: "2018-03-26 0

在Swift中,我可以使用
Calendar.current.dateComponents

问题是,这与我当前的时区不同

let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm XXX"

let from = zoneFormatter.date(from: "2018-03-25 00:00 +00:00")!
let to = zoneFormatter.date(from: "2018-03-26 00:00 +00:00")!

let components = Calendar.current.dateComponents([.month, .day, .hour, .minute], from: from, to: to)
// components is 1 day, 1 hour, because I am in UK and Daylight Savings started on 25 March.

如何检索以
dateComponents
返回的相同格式指定的两个瞬间之间的绝对差值?

不正确的日期格式字符串

看起来您的约会使用了不正确的格式。指定日期
“2018-03-25 00:00+00:00”
的日期格式实际上是
“yyy-MM-dd HH:MM-ZZZZZ”
。尝试一下这种格式,应该可以解决这个问题

为什么不正确的格式不适用于时区之间的比较


这是因为格式字符串的时区组件不正确。这意味着在比较中不会考虑时区。

日历的时区。可以通过如下设置系统默认时区来更改当前的:

NSTimeZone.default = NSTimeZone(abbreviation: "UTC")! as TimeZone

我还有1天1小时。我正在寻找一个忽略当前时区的比较,即1天0小时。如果可能,请尝试使用一天的中间时间(以及正确的格式
ZZZZ
)。比如“2018-03-25 12:00+00:00”。这对我来说是可行的,但我没有调查为什么“00:00”还不起作用。我想这是关于“00:00”时间的解释。“2018-03-25 23:59:59+0000”也行。