java - 如何解析只有日期名称的日期?

标签 java parsing date

给定一个简单的一天字符串,例如“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/

相关文章:

java - Hibernate 中的外键共享

java - 从 ArrayList<ArrayList<String>> 对象中删除重复项

php - 如何下载并解析网页的一部分?

c++ - 解析器生成器的选择

python - 在 Python 中评估数学表达式

vba - 命名范围的数据类型

java - 如何获取客户端系统使用的日期格式?

java - 当屏幕上显示 JPanel 时,如何获得通知

php - MySQL 按确切日期查询

javascript - 如果是周末则更改日期的功能