Gangmax Blog

关于java的TimeZone和Locale

Migarated from here at ‘2012-05-22 17:35:03’.

今天在编程的时候突然想到:如果我们的系统是由全球不同的人来使用,那么“时间”就是个问题,因为每个人所属的时区都不同,而服务器必须能够区别不同时区的人真正要表示的时间。例如美国人说的“2006-01-23 17:00:00”和中国人说的“2006-01-23 17:00:00”绝对是不一样的,我们的系统要能够区分每个用户的时区,才能保证系统的正确。

好在Java早就解决了这个问题,关键就是TimeZone这个类,今天画了些时间看了看这个类,以及它和java.util.Date,java.util.Calendar类之间的关系,终于清楚啦!也终于明白了为什么Date类中原来的getYear(),getMonth()在JDK1.1的时候就被Deprecated了,呵呵!也突然明白了数据库中的DateTime类型实际上和java.util.Date是一样的,都是保存了从GMT”1970-1-1 00:00:00”开始的毫秒数字。可谓融会贯通也。

顺便看了一下java.util.Locale类,因为现在只考虑使用英语实现系统,所以我还想不出我们系统会使用到这个类。不过看到Locale类中定义的名为TAIWAN的static Locale,注释竟然说它是一个country,心寒!美国人不是承认只有一个中国么,SUN不是说正在汉化JDK文档吗?我要提意见!

Comments