1 回答

TA貢獻1813條經(jīng)驗 獲得超2個贊
LocalDate? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Modern class for representing a date-only value without time-of-day and without time zone.
.parse(
? ? "1/23/40" ,?
? ? DateTimeFormatter.ofPattern( "M/d/uu" )? // Defaults to century 20xx.?
)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Returns a `LocalDate` object.
.toString()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Generate text in standard ISO 8601 format.
2040-01-23
指定默認世紀
該類SimpleDateFormat
有一個設(shè)置,用于在解析具有兩位數(shù)世紀的輸入字符串時假定哪個世紀:SimpleDateFormat::set2DigitYearStart
。
但是......你應(yīng)該停止使用這個類。
java.time
該類SimpleDateFormat
是與最早版本的 Java 捆綁在一起的糟糕的日期時間類的一部分。這些類現(xiàn)在已成為遺留類,完全被 JSR 310 中定義的現(xiàn)代java.time類所取代。
LocalDate
該類LocalDate
表示僅日期值,沒有時間、時區(qū)或相對于 UTC 的偏移量。
? 此類解析具有兩位數(shù)年份的輸入字符串,始終使用 20xx 世紀。
String?input?=?"1/23/40"?; DateTimeFormatter?f?=?DateTimeFormatter.ofPattern(?"M/d/uu"?)?; LocalDate?localDate?=?LocalDate.parse(?input?,?f?)?;
localDate.toString(): 2040-01-23
提示:我發(fā)現(xiàn)在商業(yè)應(yīng)用程序中使用 2 位數(shù)年份非常麻煩。日期和月份的含糊性很容易造成誤解和溝通不暢。我建議始終使用 4 位數(shù)年份。
當跨文化共享數(shù)據(jù)時,這個問題更加嚴重。
添加回答
舉報