在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