从Java Date获取日期,月份和年份而不更改时区

时间:2016-12-26 18:45:13

标签: java date datetime

我们有一个java日期对象,它位于与机器时区不同的时区。我们希望日期的日期,月份和年份不改变时区

此功能也不知道日期的时区。所有它得到的是java日期对象,日期在正确的时区,而java Date不提供Date.getTimeZone()。

当前Date.getDate()Date.getMonth()Date.getYear()会这样做,但已弃用且getYear()从1900年开始减去日期。我不知道原因。

提取此类信息的首选方式是什么?

例如如果日期对象包含日期" 2016年1月20日凌晨2:00"在EST时区,即使系统在CST中运行,我们也希望保留它。所以输出应该是Date:20,Month:1,Year:2016。

1 个答案:

答案 0 :(得分:1)

您应该将日期设置为Calendar,然后对其进行操作。

Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.get(Calendar.YEAR); //returns the year
cal.get(Calendar.MONTH); //returns the month