将新日期()转换为不同的时区



如果我有:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("Europe/London"));
String dateStr = dateFormat.format(new Date());
System.out.println(dateStr);

输出将是:2014-09-30 14:19:17,而我的本地时间是2014-09-30 16:19:17

我需要在特定时区中获取Date类型,而不是String

我的问题是,如何在"欧洲/伦敦"时区、

上获取新日期()

您问:

我的问题是,如何在"欧洲/伦敦"时区上获得new Date()

你不能。java.util.Date类表示时间上的瞬间。它不与任何本地时区对齐。

在内部,它跟踪自1970年1月1日午夜UTC以来的毫秒数。当使用时,可能会应用本地时区,但Date类本身中不包含时区设置。

使用日历,例如:

TimeZone timeZone= TimeZone.getTimeZone("Europe/London"));
Calendar cal = Calendar.getInstance(timeZone);

此外,日期的好处是它们不依赖于时区,它只是自epoch以来的时间(以毫秒为单位)(不久前的某个时间)。你现在使用它的方式实际上是正确的解决方案。

相关内容

  • 没有找到相关文章

最新更新