Java自定义日期格式模式精.docx
《Java自定义日期格式模式精.docx》由会员分享,可在线阅读,更多相关《Java自定义日期格式模式精.docx(8页珍藏版)》请在冰豆网上搜索。
![Java自定义日期格式模式精.docx](https://file1.bdocx.com/fileroot1/2023-1/3/7356e191-58ae-495d-b54a-0d165d2e8b86/7356e191-58ae-495d-b54a-0d165d2e8b861.gif)
Java自定义日期格式模式精
Java⾃定义⽇期格式模式
Java⽇期时间-⾃定义⽇期格式模式下⾯的列表显⽰了我们可以⽤来创建⾃定义数据格式模式的格式符号。
G时代例如:
GAD
GGGGAnnoDomini
GGGGGA
u年它可以是正数或负数。
年是正数在⼀个时代开始⽇期之后。
年份是时代开始⽇期之前的负数。
2014年AD是2014年和2014年BC是-2014年。
例如:
u/uuu/uuuu2014
uu12
uuuuu02014
y年代它计算从时代开始⽇期向前或向后的年份。
它总是⼀个正数。
2014年AD是2014年和2014年BC是2015年。
在共同时代,0年是1BC。
例如:
y/yyy/yyyy2014
yy12
yyyyy02014
D⼀年中的(1-366例如:
D150
M/L⽉份例如:
M5
MM05
MMMJulMMMMJuly
d⽇期例如:
d21
dd01
ddd001
ddd029
Q/q例如:
Q3
QQ03
QQQQ3QQQQ3rdquarter
Y例如:
Y2014
YY12
YYY/YYYY2014
w例如:
w31
W例如:
W2
E例如:
E7
EE07
EEESun
EEEEESunday
F例如:
F1
a/下午例如:
aAM
hAM/PM(1-12例如:
h2
K/下午时间(0-11例如:
K3
kAM/PM(1-24例如:
k7
H(0-23例如:
H7
HH07
m例如:
mm21
s例如:
ss12
S例如:
SSSSSSSSS000006789
A例如:
A12014012
n例如:
n789
N例如:
N12014012001289
VID例如:
VVAmerica/Chicago
z例如:
zCDT
Z例如:
Z-0500
ZZ-0500
ZZZ-05:
00
ZZZZGMT-05:
00
O例如:
OGMT-5
X例如:
X+09
XX+0930
XXX+09:
30
XXX-05:
00
XXXX+093045
XXXXX+08:
30:
45
xX相同,除了它为区域偏移零⽽不是“Z”打印“+00”。
例如:
xx-0500
pp的数量决定了输出的宽度。
例如:
mm30pppmm"30"
"单引号内的⽂本直接输出。
要输出单个报价,请使⽤两个连续的单引号。
例如:
"Hello"MMMMHelloJuly
""例如:
"""Hello"""MMMM"Hello"July
[][和]表⽰可选部分。
只有当信息可⽤于所有元素时,才会输出包含在可选节中的模式。
#,{,}
例⼦
importjava.time.LocalDate;
importjava.time.Month;
importjava.time.format.DateTimeFormatter;
importjava.time.temporal.Temporal;
importjava.util.Locale;
publicclassMain{
publicstaticvoidmain(String[]args{
LocalDateld=LocalDate.of(2014,Month.JUNE,30;
format(ld,"M/d/yyyy";
format(ld,"MM/dd/yyyy";
format(ld,"MMMdd,yyyy";
format(ld,"MMMMdd,yyyy";
format(ld,"EEEE,MMMMdd,yyyy";
format(ld,""Month"q"in"QQQ";
}
publicstaticvoidformat(Temporalco,Stringpattern{
DateTimeFormatterfmt=DateTimeFormatter.ofPattern(pattern;Stringstr=fmt.format(co;
System.out.println(pattern+":
"+str;
}
}
上⾯的代码⽣成以下结果。
使⽤区域设置的⾃定义⽇期格式
我们可以使⽤DateTimeFormatter类的Ptern(⽅法创建⼀个具有指定格式模式和语⾔环
境的DateTimeFormatter对象。
staticDateTimeFormatterofPattern(Stringpattern
staticDateTimeFormatterofPattern(Stringpattern,Localelocale以下代码显⽰如何创建两个格式化程序,以便在默认语⾔环境和德语语⾔环境中以“Monthday,Year”格式设置⽇期格式。
DateTimeFormatterfmt1=DateTimeFormatter.ofPattern("MMMMdd,yDateTimeFormatterfmt2=DateTimeFormatter.ofPattern("MMMMdd,yDateTimeFormatterDateTimeFormatter对象。
类withLocale(⽅法从同⼀模式返回指定区域设置的
DateTimeFormatterfmt2=fmt1.withLocale(Locale.GERMAN;
DateTimeFormatter境。
类中的getLocale(⽅法返回当前格式化程序的语⾔环例2
importjava.time.LocalDate;
importjava.time.LocalTime;
importjava.time.Month;
importjava.time.ZoneId;
importjava.time.ZonedDateTime;
importjava.time.format.DateTimeFormatter;
importjava.time.temporal.Temporal;
importjava.util.Locale;
publicclassMain{
publicstaticvoidmain(String[]args{
LocalTimelt=LocalTime.of(16,30,5,78899;
format(lt,"HH:
mm:
ss";
format(lt,"KK:
mm:
ssa";
format(lt,"[MM-dd-yyyy]["at"HH:
mm:
ss]";
ZoneIdusCentral=ZoneId.of("America/Chicago";
ZonedDateTimezdt=ZonedDateTime.of(LocalDate.now(,lt,usCenformat(zdt,"MM/dd/yyyyHH:
mm:
ssXXX";
format(zdt,"MM/dd/yyyyVV";
format(zdt,"[MM-dd-yyyy]["at"HH:
mm:
ss]";
}
publicstaticvoidformat(Temporalco,Stringpattern{
DateTimeFormatterfmt=DateTimeFormatter.ofPattern(pattern,LoStringstr=fmt.format(co;
System.out.println(pattern+":
"+str;
}
}
上⾯的代码⽣成以下结果。
⾃定义⽇期格式与可选
定义⾃定义⽇期时间格式时我们可以使⽤符号[和]以标记可选部分。
只有当信息可⽤于所有元素时,才会输出包含在可选节中的模式。
以下代码显⽰如何使⽤可选格式。
importjava.time.LocalDate;
importjava.time.LocalDateTime;
importjava.time.LocalTime;
importjava.time.Month;
importjava.time.format.DateTimeFormatter;
publicclassMain{
publicstaticvoidmain(String[]args{
Stringpattern="MM/dd/yyyy["at"HH:
mm:
ss]";
DateTimeFormatterfmt=DateTimeFormatter.ofPattern(pattern;LocalDateld=LocalDate.of(2014,Month.JUNE,30;
LocalTimelt=LocalTime.of(17,30,12;
LocalDateTimeldt=LocalDateTime.of(ld,lt;
Stringstr1=fmt.format(ld;
System.out.println(str1;
Stringstr2=fmt.format(ldt;
System.out.println(str2;
}
}
上⾯的代码⽣成以下结果。
JavaDateTimeFormatterBuilder
我们可以从DateTimeFormatterBuilder创建⾃定义⽇期时间格式。
以下代码构建⼀个DateTimeFormatter对象以格式化⽇期格式,例如“YEAR中的新年度在WEEK_DAY”:
importjava.time.LocalDate;
importjava.time.Month;
importjava.time.format.DateTimeFormatter;
importjava.time.format.DateTimeFormatterBuilder;
importjava.time.format.TextStyle;
importjava.time.temporal.ChronoField;
publicclassMain{
publicstaticvoidmain(String[]args{
DateTimeFormatterformatter=newDateTimeFormatterBuilder(.appendLiteral("NewYearin"
.appendValue(ChronoField.YEAR
.appendLiteral("ison"
.appendText(ChronoField.DAY_OF_WEEK,TextStyle.FULL_STANDALONE.toFormatter(;
LocalDateld=LocalDate.of(2014,Month.JANUARY,1;
Stringstr=ld.format(formatter;
System.out.println(str;
}
}
上⾯的代码⽣成以下结果。
例3
我们可以使⽤DateTimeFormatterBuilder中的模式创建相同的⾃定义格式化程序。
importjava.time.LocalDate;
importjava.time.Month;
importjava.time.format.DateTimeFormatter;
publicclassMain{
publicstaticvoidmain(String[]args{
LocalDateld=LocalDate.of(2014,Month.JANUARY,1;
Stringpattern=""NewYearin"yyyy"ison"EEEE";
DateTimeFormatterformatter=DateTimeFormatter.ofPattern(patteStringstr=ld.format(formatter;
System.out.println(str;
}
}
上⾯的代码⽣成以下结果。
W3Cschool()最⼤的技术知识分享与学习平台
此篇内容来⾃于⽹站⽤户上传并发布。