gpt4 book ai didi

java - 如何使用 SimpleDateFormat 仅解析日期

转载 作者:行者123 更新时间:2023-12-01 16:37:01 24 4
gpt4 key购买 nike

我想解析用户给定的日期,但使用特定的格式:星期几的名称。

到目前为止,这就是我所做的:

SimpleDateFormat format = new SimpleDateFormat("E", Locale.ENGLISH);

try {
Date date = format.parse ("Friday");
Calendar calendar = format.getCalendar();
calendar.add(Calendar.WEEK_OF_YEAR, 1);
return calendar.getTime();
}
catch (ParseException pe) {
return null;
}

但这让我回归:

2 janv. 1970 00:00:00

我希望它能在未来的周五返回给我(在我们的间隔拍摄中,2011 年 11 月 4 日)

我该怎么办?

最佳答案

仅解析日期,将其放入日历中,以便您可以找到星期几,然后根据当前日期创建另一个日历,以便您可以设置星期几:

currentCalendar.set(Calendar.DAY_OF_WEEK,
parsedCalendar.get(Calendar.DAY_OF_WEEK));

请注意,这不一定会将其置于 future - 它会将这一天设置在本周内。因此,如果您想确保它确实是在未来,您可能需要在之后添加一周:

// Assume we've already done all the parsing
int dayOfWeek = parsedCalendar.get(Calendar.DAY_OF_WEEK);

long now = System.currentTimeMillis();
Calendar currentCalendar = Calendar.getInstance();
currentCalendar.setTimeInMillis(now);
currentCalendar.set(Calendar.DAY_OF_WEEK, dayOfWeek);
if (currentCalendar.getTimeInMillis() < now) {
currentCalendar.add(Calendar.DAY_OF_MONTH, 7);
}

(如果当前星期几与解析的日期相同,您应该检查您想要什么行为......)

顺便说一句,我个人建议使用 Joda Time适用于 Java 中所有重要的日期和时间工作。这是一个更好的 API。

关于java - 如何使用 SimpleDateFormat 仅解析日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7964992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com