在Java中生成UTC时间

我想将Java中01/01/2100的UTC时间设置为‘2100-01-01 00:00:00’。我收到“ 2100-01-01

00:08:00”。任何想法,如何纠正这一点。

public Date getFinalTime() {

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");

Date finalTime = null;

try

{

finalTime = df.parse("01/01/2100");

} catch (ParseException e)

{

e.printStackTrace();

}

calendar.setTime(finalTime);

return calendar.getTime();

}

回答:

您还需要为SimpleDateFormat指定时区-当前正在解析 当地时间 午夜,该 时间 以UTC上午8点结束。

TimeZone utc = TimeZone.getTimeZone("UTC");

Calendar calendar = Calendar.getInstance(utc);

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");

df.setTimeZone(utc);

Date finalTime = null;

try

{

finalTime = df.parse("01/01/2100");

} catch (ParseException e)

{

e.printStackTrace();

}

calendar.setTime(finalTime);

像以往一样,我个人建议使用Joda Time,它通常功能更强大。如果您愿意,我很乐意将您的示例翻译成Joda Time。

另外,我看到您正在返回calendar.getTime()-这finalTime与您计算完后立即返回一样。

最后,仅捕获ParseException并继续进行就好像没有发生是一个非常糟糕的主意。我希望这只是示例代码,不会反映您的真实方法。同样,我假设您

实际上 将在解析其他文本-如果不是,则正如Eyal所说,您应该直接调用方法Calendar。(或者再次使用Joda Time。)

以上是 在Java中生成UTC时间 的全部内容, 来源链接: utcz.com/qa/403127.html

回到顶部