Java 时间

<textarea cols="50" rows="15" name="code" class="java:showcolumns">package my.java; import java.util.Enumeration; import java.util.Properties; import java.util.TimeZone; public class DateTimeTest { public static void main(String[] args) { //DateTimeTest.outputProperties(); DateTimeTest.outputTimeZoneList(); } public static void outputTimeZoneList() { String[] parameter = TimeZone.getAvailableIDs(); for(int i=0; i &lt; parameter.length; i++) { System.out.println(parameter[i]); } } public static void outputProperties() { Properties props=System.getProperties(); //系统属性 Enumeration&lt;Object&gt; keys = props.keys(); while(keys.hasMoreElements()) { String keyName = keys.nextElement().toString(); String keyValue = props.getProperty(keyName); System.out.print(keyName); System.out.print("----"); System.out.println(keyValue); } } public static void outputCNProperties() { Properties props=System.getProperties(); //系统属性 System.out.println("Java的运行环境版本:"+props.getProperty("java.version")); System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor")); System.out.println("Java供应商的URL:"+props.getProperty("java.vendor.url")); System.out.println("Java的安装路径:"+props.getProperty("java.home")); System.out.println("Java的虚拟机规范版本:"+props.getProperty("java.vm.specification.version")); System.out.println("Java的虚拟机规范供应商:"+props.getProperty("java.vm.specification.vendor")); System.out.println("Java的虚拟机规范名称:"+props.getProperty("java.vm.specification.name")); System.out.println("Java的虚拟机实现版本:"+props.getProperty("java.vm.version")); System.out.println("Java的虚拟机实现供应商:"+props.getProperty("java.vm.vendor")); System.out.println("Java的虚拟机实现名称:"+props.getProperty("java.vm.name")); System.out.println("Java运行时环境规范版本:"+props.getProperty("java.specification.version")); System.out.println("Java运行时环境规范供应商:"+props.getProperty("java.specification.vender")); System.out.println("Java运行时环境规范名称:"+props.getProperty("java.specification.name")); System.out.println("Java的类格式版本号:"+props.getProperty("java.class.version")); System.out.println("Java的类路径:"+props.getProperty("java.class.path")); System.out.println("加载库时搜索的路径列表:"+props.getProperty("java.library.path")); System.out.println("默认的临时文件路径:"+props.getProperty("java.io.tmpdir")); System.out.println("一个或多个扩展目录的路径:"+props.getProperty("java.ext.dirs")); System.out.println("操作系统的名称:"+props.getProperty("os.name")); System.out.println("操作系统的构架:"+props.getProperty("os.arch")); System.out.println("操作系统的版本:"+props.getProperty("os.version")); System.out.println("文件分隔符:"+props.getProperty("file.separator"));//在 unix 系统中是"/" System.out.println("路径分隔符:"+props.getProperty("path.separator"));//在 unix 系统中是":" System.out.println("行分隔符:"+props.getProperty("line.separator"));//在 unix 系统中是"/n" System.out.println("用户的账户名称:"+props.getProperty("user.name")); System.out.println("用户的主目录:"+props.getProperty("user.home")); System.out.println("用户的当前工作目录:"+props.getProperty("user.dir")); } } </textarea> 

 

http://log-cd.javaeye.com/blog/368238

 

涉及有关时间区域信息时Java和Solaris很相似。每个时间区域都有一个时间区域ID标识符。在J2SE 1.3 and 1.4中,这个ID是个字符串,是由位于J2SE 安装程序的jre/lib子目录中的tzmappings文件这些ID列表。 J2SE 1.3 仅仅只包含tzmappings文件,但是 J2SE 1.4包含世界不同地区的时间区域数据文件。jre/lib/zi存放着这些文件。在J2SE 1.4里,sun.util.calendar.ZoneInfo从这些文件获取DST规则。在Solaris中, 这些时间区域数据文件是以二进制形式存放的,不是文本文件,因此你不能看它们。 在J2SE 1.4中的时间区域数据文件和在Solaris中是不同的。

java.util.TimeZone类getDefault方法的源代码显示,它最终是会调用sun.util.calendar.ZoneInfo类的getTimeZone 方法。这个方法为需要的时间区域返回一个作为ID的String参数。这个默认的时间区域ID是从 user.timezone (system)属性那里得到。如果user.timezone没有定义,它就会尝试从user.countryjava.home (System)属性来得到ID。 如果它没有成功找到一个时间区域ID,它就会使用一个"fallback" 的GMT值。换句话说, 如果它没有计算出你的时间区域ID,它将使用GMT作为你默认的时间区域。

注意,System属性是在java.lang.System类的initProperties方法中被初始化的。这是一个本地方法。因此源代码是不可用的----除非你深入到J2SE分发包中的本地代码库中去研究。然而,在Windows系统中,System 属性是从Windows注册表中被初始化的,而在Linux/Unix中是由环境变量来进行初始化。initProperties方法的Javadoc声明,某些属性"必须保证被定义" 且列出它们。被java.util.TimeZone类的getDefault方法使用的三个System属性中,只有java.home作为一种“保证的”属性在Javadoc中被列出。

你可能感兴趣的:(Java 时间)