给定一个简单的一天字符串,例如“Thu”或“Thursday”,我如何获得一个 java.util.Calendar 对象,其中日期字符串表示与今天最接近的字符串。换句话说,今天是星期一,3/26/29012,所以如果字符串是“Thu”,我想形成一个代表“3/29/2012”的日期。如果传入的字符串是“Mon”并且我们是星期一,我想要今天的日期。在此示例中为“3/26/2012”。
我试过这个...
final DateFormat formatter = new SimpleDateFormat("EEE");
java.util.Date date = (Date) formatter.parse(dayOfWeekStr);
final Calendar now = Calendar.getInstance();
dateCal.set(Calendar.YEAR, now.get(Calendar.YEAR));
dateCal.set(Calendar.MONTH, now.get(Calendar.MONTH));
dateCal.setTime(date);
但它不起作用。一旦我将日期、年份和月份结果设置为 1970 年 1 月。
最佳答案
你就快到了。只需将 .setTime(..)
放在其余部分之上即可。目前,您正在通过设置时间来覆盖 YEAR 和 MONTH 更改。
正如 Kevin 指出的那样,它可能并非在所有情况下都有效。因此,我建议您使用不同的方法:根据解析的日期从日历中仅获取DAY_OF_WEEK
,并将其设置为现在
。当然,如果需要,您应该注意更改星期。
关于java - 如何解析只有日期名称的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9880007/