我正在尝试接受用户输入的日期格式,例如:“2000 小时,星期四,2015 年 7 月 20 日”。然后我会将其转换为日期格式以对其进行操作。但从字符串到日期的转换默认月份为一月,日期为 1。以下是代码片段:
String userDateFormat = "HHmm 'hrs', EEEE, MMMM dd, YYYY";
SimpleDateFormat userDateFormatter = new SimpleDateFormat(userDateFormat);
String reference_date = "2000 hrs, Thursday, July 20, 2015";
Date date = null;
try {
date = userDateFormatter.parse(reference_date);
} catch (ParseException e) {
System.out.println("Date must be in the format " + userDateFormat);
}
System.out.println(userDateFormatter.format(date));
Run Code Online (Sandbox Code Playgroud)
以下方法块打印:2000 小时,星期四,2015 年 1 月 1 日。有任何线索吗?
因为您YYYY在需要时使用yyyy,而 2015 年 7 月 20 日是星期一。你想要类似的东西
String userDateFormat = "HHmm 'hrs', EEEE, MMMM dd, yyyy";
SimpleDateFormat userDateFormatter = new SimpleDateFormat(
userDateFormat);
String reference_date = "2000 hrs, Monday, July 20, 2015";
Run Code Online (Sandbox Code Playgroud)
然后输出
2000 hrs, Monday, July 20, 2015
Run Code Online (Sandbox Code Playgroud)
然后SimpleDateFormatJavadoc 说(部分)
Run Code Online (Sandbox Code Playgroud)Letter Date or Time Component Presentation Examples G Era designator Text AD y Year Year 1996; 96 Y Week year Year 2009; 09
| 归档时间: |
|
| 查看次数: |
2229 次 |
| 最近记录: |