我将日期存储在UTC长并以用户时区显示。但是当我尝试只存储没有时间的日子时,它会误导不同的日期。
例如:将活动安排在 05/06/2016(2016 年 5 月 6 日)。该日期对于所有没有时区的区域都是唯一的。如果来自 GMT+5:30 时区的用户尝试添加事件2016年5月6日那么它的 ISO-8601 格式是2016-05-05T16:00:00.000Z毫秒是1462464000000.
然后来自 GMT 时区的用户尝试查看此事件。日期将是2016年5月5日代替2016年5月6日.
有没有办法在没有任何时区的情况下转换日期。
Java 8 为您的问题提供了解决方案。如果您可以使用 Java 8,请使用java.time.LocalDate它只代表日期,不代表时间。存储long
返回值到大纪元日方法。
下面给出示例代码:
LocalDate date = LocalDate.of(2016, 5, 4);
// Store this long value
long noOfDays = date.toEpochDay(); // No of days from 1970-01-01
LocalDate newDate = LocalDate.ofEpochDay(noOfDays);
System.out.println(newDate); // 2016-05-04
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)