我知道Java Date Time不是一个很好的前进方式,但我只是好奇发生了什么:
为什么以下行:
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)
Run Code Online (Sandbox Code Playgroud)
我的意思是我只是改变案子吧?但DateFormat真的那么愚蠢还是我做错了什么?或者它与我正在使用的Locale有关?
干杯
Nik*_*bak 12
m并且D在SimpleDateFormat模式中有自己的含义:http:
//download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
m Minute in hour
D Day in year
Run Code Online (Sandbox Code Playgroud)
但你不会Y在那张桌子里找到.
您不是只更改案例,而是更改格式的含义:
Y 不存在.M代表一年中的月份m代表小时分钟D代表一年中的一天d代表一个月的日子DD-MMM-YYYY和dd-mm-YYYY格式没有意义.
它不是"愚蠢的",它只是一种无效的模式.看看API: SimpleDateFormat - J2SE 6还在J2SE 7中更新了SimpleDateFormat用法并允许使用Y now SimpleDateFormat - J2SE 7
| 归档时间: |
|
| 查看次数: |
28381 次 |
| 最近记录: |