之前創建的測驗使用DateTimeFormatter.ofPattern("ha");并回傳“10AM”(對于“ 2017-04-09T10:00-06:00[US/Mountain]”)。
在我的 MacOs 和 Java ['openjdk version "11.0.12"'] 下我得到了"10am"
"10AM" != "10am"
在規范中,我看到“ha”應該創建“10AM”而不是“10am”,請參閱:https : //docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html
有什么建議嗎?
uj5u.com熱心網友回復:
DateTimeFormatter是一個 Locale-sensitive 型別,即它的決議和格式取決于Locale. 選中永遠不要在沒有語言環境的情況下使用 SimpleDateFormat 或 DateTimeFormatter以了解更多資訊。
如果您有一個 English Locale,并且您希望輸出始終是單個大小寫(即大寫),您可以將字串操作與格式化字串鏈接,例如
import java.time.LocalTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
System.out.println(
LocalTime.now(ZoneOffset.UTC)
.format(DateTimeFormatter.ofPattern("ha", Locale.ENGLISH))
.toUpperCase()
);
}
}
示例運行的輸出:
6AM
ONLINE DEMO
從Trail: Date Time 中了解有關現代日期時間 API * 的更多資訊。
* 如果您正在為 Android 專案作業并且您的 Android API 級別仍然不符合 Java-8,請檢查通過 desugaring 可用的 Java 8 API。請注意,Android 8.0 Oreo 已提供對java.time.
uj5u.com熱心網友回復:
-Duser.timezone=EDT
-Duser.country=US
-Duser.language=en-US
解決的問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/313181.html
