为什么我的simpleDateFormat搞砸了一周的哪一天?

时间:2014-05-16 18:15:34

标签: java simpledateformat

我正在尝试解析约会。当我使用以下日期格式时:

SimpleDateFormat sdf = new SimpleDateFormat("EEEE, MMM d");

使用字符串"星期一,5月19日",做

cal.setTime(sdf.parse(dateString));

以短格式取出一周中的某一天,我得到了"星期二"! Cal的一周似乎设置为3.任何想法为什么?它将在5月份推出,每月推出19次,但它想在星期二的星期几说,而5月19日肯定是我所在地区的星期一。

2 个答案:

答案 0 :(得分:7)

parse method的Javadocs状态:

  

在解析之前清除所有日历的日期时间字段,并且日历时间字段的日历默认值用于任何缺少的日期时间信息。例如,如果解析操作没有给出年份值,则解析日期的年份值是1970年的GregorianCalendar。

您不能提供一年,因此默认为1970,并且一周中的某一天会跟进。

答案 1 :(得分:1)

因为1970年5月19日是星期二,并且由于某种原因导致了这一年的违约。