java 限制日期格式_Java日期格式
TL;博士
ZonedDateTime.parse (
"20110913T100702.631 GMT" ,
DateTimeFormatter.ofPattern( "uuuuMMdd'T'HH:mm:ss.SSS z" )
).format(
DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL , FormatStyle.SHORT )
.withLocale( Locale.US )
)
2011年9月13日星期二上午10:07
ISO 8601
您的輸入字符串幾乎符合定義為標準ISO 8601格式的“基本”版本的格式。單詞basic意味著最大限度地減少ISO 8601格式的更常見“擴展”版本所使用的分隔符的使用。
String input = "20110913T100702.631 GMT" ;
使用java.time
其他Answers使用麻煩的舊遺留日期時間類,現在由java.time類取代。
在解析/生成字符串時,java.time類默認使用許多標準ISO 8601格式。因此通常不需要指定格式化模式。但默認情況下不支持此特定的基本格式,因此我們必須指定格式化模式。
DateTimeFormatter fInput = DateTimeFormatter.ofPattern ( "uuuuMMdd'T'HHmmss.SSS z" );
解析為ZonedDateTime。
ZonedDateTime zdt = ZonedDateTime.parse ( input, fInput );
要生成表示所需格式的ZonedDateTime對象值的字符串,可以定義指定的格式設置模式。但我建議你讓java.time自動為你本地化。
要進行本地化,請指定:
FormatStyle確定字符串的長度或縮寫。
Locale確定(a)翻譯日期名稱,月份名稱等的人類語言,以及(b)決定縮寫,大寫,標點符號,分隔符等問題的文化規范
因此...
// Generate output string
Locale locale = Locale.US; // Or Locale.CANADA_FRENCH, Locale.ITALY, etc.
DateTimeFormatter fOutput =
DateTimeFormatter.ofLocalizedDateTime ( FormatStyle.FULL, FormatStyle.SHORT ) // Specify format style of date portion, then time-of-day portion.
.withLocale ( locale );
String output = zdt.format ( fOutput );
轉儲到控制臺。
// Dump to console
System.out.println ( "input: " + input );
System.out.println ( "zdt.toString(): " + zdt );
System.out.println ( "output: " + output );
輸入:20110913T100702.631 GMT
zdt.toString():2011-09-13T10:07:02.631Z [GMT]
輸出:2011年9月13日星期二上午10:07
關于java.time
要了解詳情,請參閱Oracle Tutorial。并搜索Stack Overflow以獲取許多示例和解釋。規范是JSR 310。
從哪里獲取java.time類?
Java SE 8,Java SE 9以及之后
內置。
帶有捆綁實現的標準Java API的一部分。
Java 9增加了一些小功能和修復。
Java SE 6和Java SE 7
大部分java.time功能都被反向移植到Java 6& 7 {in ThreeTen-Backport。
Android
ThreeTenABP項目專門為Android調整ThreeTen-Backport(如上所述)。
ThreeTen-Extra項目使用其他類擴展java.time。該項目是未來可能添加到java.time的試驗場。您可以在此處找到一些有用的課程,例如Interval,YearWeek,YearQuarter和more。
總結
以上是生活随笔為你收集整理的java 限制日期格式_Java日期格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: protobuf windows jav
- 下一篇: java支持接口吗_java – 支持