java 当天唯一ids_java-为不同的时间字符串接收相同的ZonedDat...
當(dāng)您調(diào)用LocalDate.parse時(shí),您只獲得日期部分(日,月和年),而丟棄其余部分. LocalDate沒(méi)有時(shí)間字段(小時(shí),分鐘,秒和秒的一部分),因此它們只是被丟棄并丟失.
然后,調(diào)用atStartOfDay(ZoneId.systemDefault()),它將時(shí)間設(shè)置為JVM默認(rèn)時(shí)區(qū)的午夜.
如果要保留所有內(nèi)容(日期和時(shí)間),請(qǐng)將其解析為L(zhǎng)ocalDateTime,這是一個(gè)包含所有日期和時(shí)間字段的類(lèi).然后,調(diào)用atZone方法將其轉(zhuǎn)換為ZonedDateTime:
String inputTime = "20171025-10:58:24.062151";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd-HH:mm:ss.SSSSSS");
// parse to a LocalDateTime (keeping all date and time fields)
LocalDateTime date = LocalDateTime.parse(inputTime, formatter);
// convert to ZonedDateTime
ZonedDateTime z = date.atZone(ZoneId.systemDefault());
PS:ZoneId.systemDefault()返回JVM默認(rèn)時(shí)區(qū),但請(qǐng)記住此值為can be changed without notice, even at runtime,因此最好始終使您使用的是明確的.
API使用IANA timezones names(始終以地區(qū)/城市格式,例如亞洲/科倫坡或歐洲/柏林).
避免使用3字母縮寫(xiě)(例如IST或CET),因?yàn)樗鼈兪莂mbiguous and not standard.
您可以通過(guò)調(diào)用ZoneId.getAvailableZoneIds()獲得可用時(shí)區(qū)的列表(并選擇最適合您的系統(tǒng)的時(shí)區(qū)).然后,使用區(qū)域名稱(chēng)調(diào)用ZoneId.of()方法,如下所示:
// using specific timezone instead of JVM's default
ZonedDateTime z = date.atZone(ZoneId.of("Asia/Colombo"));
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java 当天唯一ids_java-为不同的时间字符串接收相同的ZonedDat...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《暗黑破坏神:不朽》PC、手机版实机演示
- 下一篇: 13岁男孩网课期间充值《王者荣耀》等游戏