在Java或Groovy中转换UTC时间T0当地时间

我需要存储createdOn(域类中的属性之一)。我正在获取系统时间并存储该属性的值。当我上载到服务器存储UTC时间时,我的时区是(GMT + 5:30

Chennai,Kolkata,Mumbai,New

Delhi)。我希望它成为IST(印度标准时间),我的应用程序在Grails上使用Groovy。请帮助我调整UTC / IST时差。提前致谢

回答:

不,不要那样做。曾经!

如果您以当地形式 存储 时间,那么您将痛苦不堪。基本上,您必须同时存储本地时间和本地时区,然后时间的显示就变成一个复杂的野兽(计算出源时区和目标时区)。

所有时间都应 存储 为UTC。没有例外。用户输入的时间应先转换为UTC,然后再写入任何地方(尽快)。

向用户显示的时间应尽可能从UTC转换为本地时间。

从曾经陷入多时区泥潭的人那里获取建议。使用UTC并仅在必要时进行转换将使您的生活更加轻松。


一旦有了UTC时间,就可以使用SimpleDateFormat类进行转换了:

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.TimeZone;

public class scratch {

public static void main (String args[]) {

Date now = new Date();

SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");

sdf.setTimeZone (TimeZone.getTimeZone ("IST"));

System.out.println ("Time in IST is " + sdf.format (now));

}

}

输出:

Time in IST is 2011-04-11 13:40:04

这与Mirzapur的当前时间一致,我认为IST的所在地(IST在此并不重要,因为它只有一个时区,因此目前在印度并不重要)。

以上是 在Java或Groovy中转换UTC时间T0当地时间 的全部内容, 来源链接: utcz.com/qa/402297.html

回到顶部