在java中将IST转换为PST



Hi 我有一个日期/时间字段,我想在 java 中将当前 IST 转换为当前 PST...需要帮助....

例如:现在在 IST 中,它 : 13/may/2011 3.32.58pm希望在 PST 中相同,即 13/may/2011 3.02.58 AM

谢谢。。。。。。。。

如果您对当前时间感兴趣,则根本不需要了解 IST...只是当前实例,并转换为 PST。您可以使用以下内容来执行此操作:

Date now = new Date();
TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles"); // For example...
DateFormat format = new SimpleDateFormat("..."); // Put your pattern here
format.setTimeZone(zone);
String text = format.format(now);

就个人而言,我建议您使用 Joda Time 进行所有日期/时间工作,因为它是一个更好的 API - 但在这种情况下,即使使用内置 API,它也非常简单。

Jon Skeet的答案是正确的,但随着Java 8及更高版本中java.time代码的到来,现在已经过时了。

java.time

Instant类以 UTC 表示时间轴上的时刻,分辨率为纳秒(最多九 (9) 位小数

)。

以 UTC 格式获取当前时刻。

Instant instant = Instant.now();

调整为时区。

continent/region 的格式指定正确的时区名称,例如 America/MontrealAfrica/CasablancaPacific/Auckland 。切勿使用 3-4 个字母的缩写,例如 ESTIST,因为它们不是真正的时区,不是标准化的,甚至不是唯一的(!)。

ZoneId z = ZoneId.of( "America/Los_Angeles" );
ZonedDateTime zdt = instant.atZone( z );

要生成标准 ISO 8601 格式的字符串,请调用 toString 。对于备用格式,请使用许多其他问题和答案中已经介绍的DateTimeFormatter类。

String output = zdt.format( myDateTimeFormatter );

看到印度时间的同一时刻,特别是Asia/Kolkata.

ZoneId zKolkata = ZoneId.of( "Asia/Kolkata" );
ZonedDateTime zdtKolkata = zdt.withZoneSameInstant( zKolkata );

我不确定你说IST是指印度标准时间还是爱尔兰标准时间。让我们也介绍一下Europe/Dublin。该区域恰好当前使用零偏移量,+00:00 .所以它的挂钟时间与UTC相同。

ZoneId zDublin = ZoneId.of( "Europe/Dublin" );
ZonedDateTime zdtDublin = zdt.withZoneSameInstant( zDublin );

查看此代码在 IdeOne.com 实时运行。

instant.toString(): 2017-02-13T07:28:57.738Z

zdt.toString(): 2017-02-12T23:28:57.738-08:00[美国/Los_Angeles]

zdt加尔各答.toString(): 2017-02-13T12:58:57.738+05:30[亚洲/加尔各答]

zdtDublin.toString(): 2017-02-13T07:28:57.738Z[欧洲/都柏林]


关于 java.time

java.time 框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧传统日期时间类,如java.util.DateCalendarSimpleDateFormat

Joda-Time 项目现在处于维护模式,建议迁移到 java.time 类。

要了解更多信息,请参阅 Oracle 教程。并搜索堆栈溢出以获取许多示例和解释。规范为 JSR 310。

从哪里获得java.time类?

  • Java SE 8SE 9 及更高版本
    • 内置。
    • 具有捆绑实现的标准 Java API 的一部分。
    • Java 9添加了一些小功能和修复。
  • Java SE 6SE 7
    • 许多java.time功能在ThreeTen-Backport中向后移植到Java 6和7。
  • 人造人
    • ThreeTenABP项目专门为Android改编了ThreeTen-Backport(如上所述)。
    • 请参阅如何使用ThreeTenABP...

ThreeTen-Extra项目通过额外的类扩展了java.time。这个项目是未来可能添加到java.time的试验场。你可以在这里找到一些有用的类,如IntervalYearWeekYearQuarter等。

相关内容

  • 没有找到相关文章

最新更新