本文介紹了將Java日期從一種格式轉(zhuǎn)換為另一種格式,而不將其轉(zhuǎn)換為字符串的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我正在嘗試獲取當(dāng)前系統(tǒng)日期,并將其格式化為ETC/UTC,然后再格式化為”dd.MM.yyyy HH:mm z”格式。問題是格式化日期后的FORMAT函數(shù)返回的是字符串,而不是日期。下面是代碼旋轉(zhuǎn)框
final Date currentDate = new Date();
final SimpleDateFormat dateFormatter = new SimpleDateFormat("dd.MM.yyyy HH:mm z");
dateFormatter.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
String finalDateTime= dateFormatter.format(currentDate);
System.out.println(finalDateTime);
有沒有其他解決方案可以讓我通過保留在這個Date對象中來格式化日期,因?yàn)槲已芯苛薐ava 8之后和Java 8之前的每個Date庫,似乎如果我想格式化任何類型的Date或DateTime,我必須使用將給定日期轉(zhuǎn)換為字符串的格式化工具。
是否有其他解決方案或不可能?
推薦答案
Date表示單個時(shí)間點(diǎn)。就是這樣,沒有更多,沒有更少。它不包含任何有關(guān)時(shí)區(qū)的信息。
Wed Jun 06 12:38:15 BST 2018與Wed Jun 06 11:38:15 GMT 2018相同,只是位于不同的時(shí)區(qū)。就像單詞”人類”和”智人”一樣。它們指的是相同的物種,只是它們的”格式”不同而已。
因此您不需要以任何方式更改日期。你只需要改變它的格式就行了。這就是格式化程序返回String%s的原因。只有String%s可以表示日期的一種特定格式。
這篇關(guān)于將Java日期從一種格式轉(zhuǎn)換為另一種格式,而不將其轉(zhuǎn)換為字符串的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,






