- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
因为这篇文章与给定日期与“今天的日期”的比较有关,请记住我是在 2017-01-26 上发布的
基本上,我正在做以下事情:
但是,似乎我做错了什么,或者因为输出似乎异常而遗漏了一些东西。
我从我的控制台复制了这个输出:
String sent by the server --> 2017-1-27T0:00:00.000Z
Conversion I make with a dateFormatter --> (2017-01-27 00:00:00 +0000)
2017-01-27 00:00:00 +0000 is TODAY
上面的输出显然是错误的。因为那是明天,而不是今天。
现在,在下面的输出中,服务器发送的日期实际上是今天,但 NSCalendar.currentCalendar().isDateInToday(myDate!) 另有说明
String sent by the server --> 2017-1-26T0:00:00.000Z
Conversion I make with a dateFormatter Optional(2017-01-26 00:00:00 +0000)
2017-01-26 00:00:00 +0000 is NOT TODAY
我的问题是,我做错了什么?我仔细检查了我的电脑、模拟器和 dateFormatter.locale 是否设置正确。
我试过像“es_CL”这样的字符串语言环境还有
dateFormatter.locale = NSLocale.currentLocale()
最佳答案
这可能与时区有关。您的服务器返回日期是 UTC
,即 GMT-00:00
。
如果您在智利,您本地的时区是 -3 小时。因此今天实际上开始于 2017-01-26 03:00:00 +0000
结束于 2017-01-27 03:00:00 +0000
。
在这方面,您看到的结果是完全正确的。返回的白天不是您本地时区的“今天”。
要更改此行为,您可以将日历上的时区设置为 UTC:
let calendar = NSCalendar.currentCalendar()
calendar.timeZone = TimeZone(secondsFromGMT: 0)
关于ios - Swift NSCalendar.currentCalendar().isDateInToday.() 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41879930/
我正在尝试比较今天是否有时间。我使用了NSCalendar [Calender isDateInToday:date]方法。但是,只是经过午夜的时间未通过测试。 时间00:14:05返回否,但21:4
因为这篇文章与给定日期与“今天的日期”的比较有关,请记住我是在 2017-01-26 上发布的 基本上,我正在做以下事情: 从服务器获取 ISO DATE 将所述日期转换为 NSDate 使用 NSC
我是一名优秀的程序员,十分优秀!