不,不要那样做。曾经!
如果您以当地形式 存储 时间,那么您将痛苦不堪。基本上,您必须同时存储本地时间和本地时区,然后时间的显示就变成一个复杂的野兽(计算出源时区和目标时区)。
所有时间都应 存储 为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在此并不重要,因为它只有一个时区,因此目前在印度并不重要)。



