lim*_*srs 4 java date systemtime java.util.date localdate
java.util.Date我想知道和之间的区别java.time.LocalDate。
我听说这java.time.LocalDate会带来用户环境时间,而不是服务器时间,但我想知道这是否属实。
换句话说,如果用户操纵他或她的系统时间,我想知道它是否算作更改时间,而不是服务器时间。
避免java.util.Date
主要区别是:对于新代码,您应该使用LocalDate来表示日历日期,而不是java.util.Date. Date设计不佳且早已过时,您绝对没有理由要使用它。
用户环境时间与服务器时间
\n\nLocalDate为您提供设置的日期(而将 a 设置Date为特定日期并不简单,但也是可能的)。尝试将LocalDate(或Date) 设置为 \xe2\x80\x9ctoday\xe2\x80\x9d 或 \xe2\x80\x9cnow\xe2\x80\x9d 所得到的结果取决于以下几件事:
两者Localdate.now(desriedTimeZone)都new Date()将从运行它们的计算机上获取时间。因此,如果您在 user\xe2\x80\x99s 计算机上运行 Java 客户端,并且用户篡改了该计算机上的时钟,则它们都可能给您提供错误的时间。
另一方面,如果客户端已连接到您控制的服务器,则\xe2\x80\x99应该很难从该服务器获取当前日期和时间(除了所产生的延迟,可能远小于一秒)。
\n小智 6
java.util.Date自JDK1.0起就出现在Core java API中,但是java.time.LocalDate是在java 1.8版本的Java API中引入的。
LocalDate 表示不带时间的 ISO 格式 (yyyy-MM-dd) 的日期。它可用于存储生日和发薪日等日期。
实际上,Java 1.8 中引入了这个新的 Time-Date,以提供不变性和线程安全性。并提供支持最常见操作的各种实用方法。
您可以参考以下内容了解更多详情: