fvd*_*cin 7 java parsing simpledateformat
任何人都可以解释为什么我在尝试解析日期时获得这些值?我尝试了三种不同的输入,如下所示:
1)2013年第三周
Date date = new SimpleDateFormat("ww.yyyy").parse("02.2013");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(cal.get(Calendar.WEEK_OF_YEAR) + "." + cal.get(Calendar.YEAR));
Run Code Online (Sandbox Code Playgroud)
哪些输出:( 02.2013如我所料)
2)2013年第一周
Date date = new SimpleDateFormat("ww.yyyy").parse("00.2013");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(cal.get(Calendar.WEEK_OF_YEAR) + "." + cal.get(Calendar.YEAR));
Run Code Online (Sandbox Code Playgroud)
哪些产出:( 52.2012这对我来说很好,因为2013年的第一周也是2012年的最后一周)
3)2013年第二周
Date date = new SimpleDateFormat("ww.yyyy").parse("01.2013");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(cal.get(Calendar.WEEK_OF_YEAR) + "." + cal.get(Calendar.YEAR));
Run Code Online (Sandbox Code Playgroud)
哪个输出:( 1.2012这对我来说完全没有意义)
有谁知道为什么会这样?我需要以格式(一周中的一周)解析日期.(年).我使用错误的模式吗?
Jon*_*eet 16
你正在使用ww,这是"一周的一周",但那时yyyy是"日历年"而不是"一年".设置周周,然后设置日历年是问题的一个方法,因为它们只是有效的单独编号系统.
你应该YYYY在你的格式字符串中使用来指定周年...虽然不幸的是你看起来不能以理智的方式获得价值.(我希望Calendar.WEEKYEAR不变,但没有这样的事情.)
此外,周年价值从1开始,而不是0 ......并且没有一周是两周 - 年; 它无论是 2013年的第一个星期或者是2012年的最后一个星期......这不是两个.
如果可能的话,我个人会避免使用周年和周数 - 他们可能会非常混乱,特别是当一个日历年的日期是在不同的一周.
| 归档时间: |
|
| 查看次数: |
515 次 |
| 最近记录: |