Java数据格式
我知道Java日期时间不是一个很好的前进方式,但我只是好奇到底发生了什么: 为什么会出现以下行:Java数据格式,java,date-format,Java,Date Format,我知道Java日期时间不是一个很好的前进方式,但我只是好奇到底发生了什么: 为什么会出现以下行: DateFormat df=new SimpleDateFormat(“dd-MMM-yyyy”,Locale.US) 不会产生任何错误,并且以下行会: DateFormat df=new SimpleDateFormat(“DD-MMM-YYYY”,Locale.US) DateFormat df=new SimpleDateFormat(“dd-mm-YYYY”,Locale.US) 将引发以下
DateFormat df=new SimpleDateFormat(“dd-MMM-yyyy”,Locale.US)
不会产生任何错误,并且以下行会:
DateFormat df=new SimpleDateFormat(“DD-MMM-YYYY”,Locale.US)
DateFormat df=new SimpleDateFormat(“dd-mm-YYYY”,Locale.US)
将引发以下异常:
Exception in thread "main" java.lang.IllegalArgumentException: Illegal pattern character 'Y'
at java.text.SimpleDateFormat.compile(SimpleDateFormat.java:769)
at java.text.SimpleDateFormat.initialize(SimpleDateFormat.java:576)
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:501)
at testing.MySchedule.main(MySchedule.java:18)
线程“main”java.lang.IllegalArgumentException中的异常:非法模式字符“Y”
位于java.text.simpleDataFormat.compile(simpleDataFormat.java:769)
在java.text.simpleDataFormat.initialize(simpleDataFormat.java:576)
位于java.text.simpleDataFormat。(simpleDataFormat.java:501)
main(MySchedule.java:18)
我是说我只是换了个案子,对吗?但DateFormat真的那么蠢吗,还是我做错了什么?或者它与我使用的语言环境有关
欢呼声
m
和D
在简化格式模式中有自己的含义:但是你在那张表中找不到
Y
。它不是“哑巴”,它只是一个无效的模式。请看一下API:
此外,J2SE 7中更新了SimpleDataFormat用法,并允许现在使用Y您不仅更改了大小写,还更改了格式的含义:
不存在Y
代表一年中的月份M
代表分钟(小时)m
代表一年中的天D
表示月份中的天d
DD-MMM-YYYY
和DD-mm-YYYY
格式没有任何意义
使用(小写)y表示年份
M = month
m = minute
d = 1-30 (or 31)
D = 1-365
特别是“从‘A’到‘Z’以及从‘A’到‘Z’的无引号字母被解释为模式字母”。“Y”不是允许的模式。
M = month
m = minute
d = 1-30 (or 31)
D = 1-365