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

Yam*_*nue 0 java simpledateformat

我想解析一个约会.当我使用以下日期格式时:

SimpleDateFormat sdf = new SimpleDateFormat("EEEE, MMM d");
Run Code Online (Sandbox Code Playgroud)

随着字符串"星期一,5月19日",做

cal.setTime(sdf.parse(dateString));
Run Code Online (Sandbox Code Playgroud)

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

rge*_*man 7

parse方法的Javadocs状态:

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

您没有提供一年,因此默认为1970,并且一周中的某一天紧随其后.