如何将java.util.Date对象转换为Calendar对象?

12

我在我的Java应用程序中使用PrettyTimeJava库来进行各种日期/时间处理,例如将MySQL格式的日期/时间字符串转换为Java日期或反之亦然。

然而,我看到date.getYear()、 date.getMonth()等都已过时,并且建议使用Calendar。但是,PrettyTime仅将其结果返回为Date对象,我无法找到将Date对象转换为Calendar对象的方法。

Calendar文档中,我只看到了关于Date的方法setTime(Date date),但是该方法名有歧义,文档没有明确说明调用此方法会实际执行什么操作。显然,我不能像用Date的那些方法一样简单地进行calendar.set( date.getYear(), date.getMonth(), ..)等操作,因为这些方法已被弃用。

那么我该如何将给定的Date对象转换为Calendar?


1
日历 calendar = ...; calendar.setTime(某日期对象); 就这么简单。 - Luiggi Mendoza
或者获取毫秒级时间。 - Sotirios Delimanolis
1
你们似乎打字比我快一点。 - Jeff Storey
1个回答

10
Calendar cal = Calendar.getInstance();
cal.setTime(date);

如果需要,您还可以获取不同语言环境的日历。

您还可以这样做:

cal.setTimeInMillis(date.getTime());

2
谢谢,我希望setTime方法的命名不要那么模糊或者有更清晰的文档说明,这样我就不用问了。 - Ali
作为一般建议,如果可以的话,请尝试使用Joda时间库。它比Java标准时间库更加简洁。 - Jeff Storey
@LuiggiMendoza,它是否允许从给定的字符串创建日期/日历对象,例如YYYY-MM-DD HH:MM:SS?这是我的主要需求,因为我需要将MySQL日期/时间字符串转换为Java日期/日历,反之亦然。 - Ali
@ClickUpvote 是的,它可以。 - Luiggi Mendoza
1
@ClickUpvote 使用了一个 SEO。我的搜索结果中第一个给出的链接是:https://dev59.com/OW025IYBdhLWcg3wChSc - Luiggi Mendoza
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接