對于我的 java 程式,我匯入了 Calendar 類并創建了一個名為 cal 的 getInstance()。下面的代碼在它自己的方法和類中。
import java.util.Calendar;
Calendar cal = Calendar.getInstance();
我正在嘗試添加到字串覆寫率,這將等于下面的代碼。
coverage = String.format("%nPAYOUT FOR EARTHQUAKE DAMAGE"
"%n%SHomeowner: " insured
"%nDate: " cal.get(Calendar.DATE)
"%nTime: " cal.get(Calendar.HOUR));
這僅回傳當前日期和時間。我怎樣才能使它回傳格式
日期:月/日/年
時間:hh:mm:ss
uj5u.com熱心網友回復:
java.time
您正在使用一個糟糕的日期時間類,該類在幾年前被JSR 310 中定義的現代java.time類所取代。
捕捉在時區中看到的當前時刻。
ZonedDateTime zdt = ZonedDateTime.now() ; // Uses JVM’s current default time zone.
或者,明確指定時區。
ZoneId z = ZoneId.of( "America/Edmonton" ) ;
ZonedDateTime zdt = ZonedDateTime.now( z ) ;
在 Java 15 中,我們具有文本塊功能,可讓您更輕松地創建文本。文本塊不直接支持插值。使用String#format/ String#formatted。
String insured = "Bob";
String template =
"""
PAYOUT FOR EARTHQUAKE DAMAGE
Homeowner: %1$s
Date: %2$s
Time: %3$s
""";
String coverage =
template.formatted(
insured ,
zdt.format(
DateTimeFormatter.ofLocalizedDate( FormatStyle.MEDIUM ).withLocale( Locale.US )
) ,
zdt.format(
DateTimeFormatter.ofLocalizedTime( FormatStyle.MEDIUM ).withLocale( Locale.US )
)
);
System.out.println( "coverage = " "\n" coverage );
跑的時候。
coverage =
PAYOUT FOR EARTHQUAKE DAMAGE
Homeowner: Bob
Date: Feb 27, 2022
Time: 3:20:32 PM
與遺留代碼互操作
如果您必須使用Calendar類與尚未更新為java.time的舊代碼進行互操作,則可以來回轉換。使用添加到舊類的新轉換方法。
從傳統到現代的轉變。投射到GregorianCalendar. 測驗instanceof是否有機會使用不同的具體類。
ZonedDateTime zdt = ( ( GregorianCalendar ) calendar ).toZonedDateTime() ;
從現代到傳統的轉換。
Calendar cal = GregorianCalendar.from( zdt ) ;
如果使用 教科書或教程作業Calendar,則需要更新的教科書或教程。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/433404.html
