- 浏览: 2140036 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (401)
- Agile (16)
- Apache Commons (3)
- Architecture (8)
- DB.MongoDB (5)
- DB.Mysql (3)
- DB.Oracle (34)
- DirectoryService (1)
- DotNet (1)
- English (3)
- Groovy (0)
- Html (28)
- Java (67)
- Java.Aixs (7)
- Java.Cache (2)
- Java.jPBM (1)
- Java.Resin (6)
- Java.Spring (4)
- Java.Struts2 (5)
- Java.Tomcat (16)
- Javascript (45)
- Javascript.Google Map (2)
- Javascript.Jquery (8)
- Life (15)
- Maven&Ant (4)
- Network (5)
- OS.Linux (45)
- OS.Windows (10)
- OS.Windows.Office (1)
- PlayFramework (15)
- Python (28)
- Reading notes (11)
- Security (13)
- Server.Apache (3)
- Server.Nginx (7)
- Test (6)
- Tool (15)
- Work.Solution (15)
- Other (20)
- SSO&CAS&Identity (13)
最新评论
-
hutuxiansheng123:
防火墙、Iptables、netfilter/iptables、NAT 概述 -
dacoolbaby:
非常棒的正则表达式,非常适用。万分感谢。
用python分析nginx的access日志 -
loot00:
您好! 我也遇到了相同的错误信息。我是用f_link_lob ...
LOB variable no longer valid after subsequent fetch -
feihangchen:
@OnApplicationStop public clas ...
Play framework 1.2.3 Jobs定时任务、异步任务、引导任务、触发任务、关闭任务 -
洞渊龙王:
谢谢了
www.w3.org被qiang导致logback报错:Connect reset
Greenwich ['ɡri:nidʒ] n. 格林尼治(英国伦敦东南一市镇, 从前皇家天文台的所在地; 通过该天文台的经线被定为本初子午线)
GMT [,dʒi: em 'ti:] abbr. 格林尼治标准时间(Greenwich Mean Time)
UTC Universal Time Coordinated世界调整时间(UTC使用原子钟,在百万年内几乎都能保持恒速,但是由于地球自转速度变慢,使用leap second来调整原子钟的时间来适应地球自转速度。从1972年开始,截至到今天2012年4月13号,总共有24个闰秒存在,下个闰秒在2012年6月被加进来。)
UTC Universal time code国际标准时间码
CST=China Standard Time 中国标准时间
WST=World Standard Time 世界标准时间(新的WST是UTC时间)
Leap year闰年:是为了弥补因人为历法规定(JSE中默认使用GregorianCalendar格里高日历,有闰年,没有闰秒)造成的年度天数与地球实际公转周期的时间差而设立的。通常的解释都是说一年有多少天多少小时多少分,取整数365还有多余的,累积达到一天24小时后,就多加一天的年是闰年。补上时间差的年份为闰年。闰年共有366天,2月份有29天。闰年定义:四年一闰,百年不闰,四百年再闰。
不同的日历对于这多出来的一天处理方式不同,闰年计算方式也不同。比如格里高日历中有润日,农历中有闰月!格里高日历闰年规则:被4整除,世纪初的年份被400整除的是闰年。(1900不是,2000是闰年);而Julian日历规定被4整除就是闰年。
Daylight Saving Time:DST是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。一般在天亮早的夏季人为将时间提前一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家具体规定不同。目前全世界有近110个国家每年要实行夏令时。对于上下班时间有影响。
基于Java6文档
java.util.Calendar:是一个抽象类,用来对特定的时间点在YEAR, MONTH, DAY_OF_MONTH, HOUR等纬度进行转换和操作(加、减等)。注意是Calendar是受TimeZone时区和Locale区域影响的。
Calendar中包含的不同纬度:
默认的无参方法getInstance是根据当前JVM所在机器的TimeZone和Locale并取得当前机器时间。(getInstance Gets a calendar using the default time zone and locale. The Calendar returned is based on the current time in the default time zone with the default locale.)
Calendar的属性lenient:lenient模式下(Calendar默认lenient=true),32 January 2006是允许存在的。非lenient模式下,32 January 2006会出异常。
java.util.TimeZone:表示相对于GMT格林尼治时区的偏移量,和locale没有关系,TimeZone类的实例中可以直接得到offset偏移量的值。getDefault方法可以取得默认的时区,
getAvailableIDs()可以取得所有可用的时区,
getTimeZone("GMT"), getTimeZone("Asia/Shanghai")可以取得特定的时区。
如果需要的时区不存在,也可以根据规则自定义时区。
java.util.Locale:表示一个地理上,政治上或者文化上的特定区域。一个操作如果需要Locale 来执行任务,那么这个操作就是locale-sensitive区域敏感的。譬如显示一个日期、数字就是locale-sensitive的操作---需要根据用户的的国家,区域或者文化的规定或者习惯来格式化显示。
构造函数:
Locale(String language)
Locale(String language, String country)
Locale(String language, String country, String variant)
由构造函数可以看出,一个Locale最多有3部分构成,每部分之间用下划线分隔,如zh_TW,ja_JP。具体参数如下:
language语言代码 是一个ISO Language Code, 根据ISO-639定义由2个小写字母构成 其中定义汉语Chinese的代码为zh 英语English的代码为en 日语Japanese的代码ja
country国家代码 是一个ISO Country Code, 根据ISO 3166 Codes (Countries)定义由2个大写字母构成 其中定义中国China的代码为CN 美国的代码US 日本的代码JP
variant变体是供应商或者浏览器特定的代码。如WIN for Windows, MAC for Macintosh, and POSIX for POSIX。多部分变体之间也用下划线分隔。
Locale中定义了很多常用的变量方便用户使用如Locale.US(en_US), Locale.CHINA(zh_CN) , Locale.JAPAN(ja_JP)等。
Locale敏感的类例子:NumberFormat
java.util.ResourceBundle:包含一个特定locale的对象,用来做国际化:根据指定用户的locale取得相应locale的资源。Resource bundles资源镞的名字是由1个基本名字和用来标识locale的额外名字构成。如基本名字是MyResources,MyResources_de,MyResources_zh_CN等
调用特定对象的资源文件:
ResourceBundle myResources = ResourceBundle.getBundle("MyResources", currentLocale);
java.util.Date:表示一个特定的时间点,有毫秒的精度。无参构造函数生成时,使用的是JVM所在的机器的时间,并且是最接近的毫秒。它没有TimeZone时区和Locale区域的设置。同时对于对日期进行加、减、今天是周几等操作时,一般使推荐用Calendar。
在 JDK 1.1 之前,类 Date 有两个主要功能。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和分析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串。Date 中的相应方法已废弃。
在UTC(Universal Time Coordinated)世界调整时间中,每过1,2年就会有额外的一秒(地球自转速度变化导致的),称为leap second “闰秒”,闰秒总是被加在一天中的最后一秒,并且总是加在12月31号或者6月30号。例如:1995年的最后一分钟就是有61秒。而几乎所有的现在操作系统都假设1天 = 24 × 60 × 60 = 86400秒。因此由于闰秒的存在,大部分电脑都不能精确地反应出这一秒。这也是为什么电脑需要做周期性的时间同步的原因。Date类并没有反应出UTC中的闰秒,它直接从操作系统取得时间。Calendar也是应该从操作系统取得时间。也就是说JVM在电脑上使用的Date和Calendar的毫秒数中都不包含leap second。
有些电脑采用GMT(Greenwich mean time) 格林尼治时间(等同于UT世界时间),GMT是生活中的叫法,UT是科学上的叫法。UTC是根据原子钟,UT是根据天文观测。
Date中设置或者返回年,月,日,时,分,秒的值:
java.sql.Date, java.sql.Time, java.sql.TimeStamp是java.util.Date类的子类。是给JDBC用来表示SQL DATE, SQL TIME和 SQL TIMESTAMP数据库字段。为了符合SQL对于自己数据类型的要求,上述3个Date子类都做了一定的限制。
java.sql.Date对一个毫秒值进行了简单的包装(毫秒值计算是从GMT时间 1970年1月1号0时0分0秒开始的),用来给JDBC表示一个SQL DATE的值。根据SQL DATE的规定,java.sql.Date对应实例的时分秒要等于0.
java.sql.Time对java.util.Date进行了简单的包装,用来给JDBC表示一个SQL TIME的值。这个字段的日期部分的值固定为January 1, 1970并且不可修改
疑问:
getTimeInMillis的时间偏移量(因为基准是1970年1月1号 GMT标准时间)
Calendar的getTimeInMillis的毫秒数,是否已经把历史上的毫秒数统计进去?使用格里高日历,应该没有包含。
GMT [,dʒi: em 'ti:] abbr. 格林尼治标准时间(Greenwich Mean Time)
UTC Universal Time Coordinated世界调整时间(UTC使用原子钟,在百万年内几乎都能保持恒速,但是由于地球自转速度变慢,使用leap second来调整原子钟的时间来适应地球自转速度。从1972年开始,截至到今天2012年4月13号,总共有24个闰秒存在,下个闰秒在2012年6月被加进来。)
UTC Universal time code国际标准时间码
CST=China Standard Time 中国标准时间
WST=World Standard Time 世界标准时间(新的WST是UTC时间)
Leap year闰年:是为了弥补因人为历法规定(JSE中默认使用GregorianCalendar格里高日历,有闰年,没有闰秒)造成的年度天数与地球实际公转周期的时间差而设立的。通常的解释都是说一年有多少天多少小时多少分,取整数365还有多余的,累积达到一天24小时后,就多加一天的年是闰年。补上时间差的年份为闰年。闰年共有366天,2月份有29天。闰年定义:四年一闰,百年不闰,四百年再闰。
不同的日历对于这多出来的一天处理方式不同,闰年计算方式也不同。比如格里高日历中有润日,农历中有闰月!格里高日历闰年规则:被4整除,世纪初的年份被400整除的是闰年。(1900不是,2000是闰年);而Julian日历规定被4整除就是闰年。
Daylight Saving Time:DST是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。一般在天亮早的夏季人为将时间提前一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家具体规定不同。目前全世界有近110个国家每年要实行夏令时。对于上下班时间有影响。
基于Java6文档
java.util.Calendar:是一个抽象类,用来对特定的时间点在YEAR, MONTH, DAY_OF_MONTH, HOUR等纬度进行转换和操作(加、减等)。注意是Calendar是受TimeZone时区和Locale区域影响的。
Calendar中包含的不同纬度:
- Calendar.YEAR——年份
- Calendar.MONTH——月份
- Calendar.DATE——日期
- Calendar.DAY_OF_MONTH——日期,和上面的字段完全相同
- Calendar.HOUR——12小时制的小时数
- Calendar.HOUR_OF_DAY——24小时制的小时数
- Calendar.MINUTE——分钟
- Calendar.SECOND——秒
- Calendar.DAY_OF_WEEK——星期几
默认的无参方法getInstance是根据当前JVM所在机器的TimeZone和Locale并取得当前机器时间。(getInstance Gets a calendar using the default time zone and locale. The Calendar returned is based on the current time in the default time zone with the default locale.)
Calendar的属性lenient:lenient模式下(Calendar默认lenient=true),32 January 2006是允许存在的。非lenient模式下,32 January 2006会出异常。
java.util.TimeZone:表示相对于GMT格林尼治时区的偏移量,和locale没有关系,TimeZone类的实例中可以直接得到offset偏移量的值。getDefault方法可以取得默认的时区,
getAvailableIDs()可以取得所有可用的时区,
getTimeZone("GMT"), getTimeZone("Asia/Shanghai")可以取得特定的时区。
如果需要的时区不存在,也可以根据规则自定义时区。
java.util.Locale:表示一个地理上,政治上或者文化上的特定区域。一个操作如果需要Locale 来执行任务,那么这个操作就是locale-sensitive区域敏感的。譬如显示一个日期、数字就是locale-sensitive的操作---需要根据用户的的国家,区域或者文化的规定或者习惯来格式化显示。
构造函数:
Locale(String language)
Locale(String language, String country)
Locale(String language, String country, String variant)
由构造函数可以看出,一个Locale最多有3部分构成,每部分之间用下划线分隔,如zh_TW,ja_JP。具体参数如下:
language语言代码 是一个ISO Language Code, 根据ISO-639定义由2个小写字母构成 其中定义汉语Chinese的代码为zh 英语English的代码为en 日语Japanese的代码ja
country国家代码 是一个ISO Country Code, 根据ISO 3166 Codes (Countries)定义由2个大写字母构成 其中定义中国China的代码为CN 美国的代码US 日本的代码JP
variant变体是供应商或者浏览器特定的代码。如WIN for Windows, MAC for Macintosh, and POSIX for POSIX。多部分变体之间也用下划线分隔。
Locale中定义了很多常用的变量方便用户使用如Locale.US(en_US), Locale.CHINA(zh_CN) , Locale.JAPAN(ja_JP)等。
Locale敏感的类例子:NumberFormat
java.util.ResourceBundle:包含一个特定locale的对象,用来做国际化:根据指定用户的locale取得相应locale的资源。Resource bundles资源镞的名字是由1个基本名字和用来标识locale的额外名字构成。如基本名字是MyResources,MyResources_de,MyResources_zh_CN等
调用特定对象的资源文件:
ResourceBundle myResources = ResourceBundle.getBundle("MyResources", currentLocale);
java.util.Date:表示一个特定的时间点,有毫秒的精度。无参构造函数生成时,使用的是JVM所在的机器的时间,并且是最接近的毫秒。它没有TimeZone时区和Locale区域的设置。同时对于对日期进行加、减、今天是周几等操作时,一般使推荐用Calendar。
在 JDK 1.1 之前,类 Date 有两个主要功能。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和分析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串。Date 中的相应方法已废弃。
在UTC(Universal Time Coordinated)世界调整时间中,每过1,2年就会有额外的一秒(地球自转速度变化导致的),称为leap second “闰秒”,闰秒总是被加在一天中的最后一秒,并且总是加在12月31号或者6月30号。例如:1995年的最后一分钟就是有61秒。而几乎所有的现在操作系统都假设1天 = 24 × 60 × 60 = 86400秒。因此由于闰秒的存在,大部分电脑都不能精确地反应出这一秒。这也是为什么电脑需要做周期性的时间同步的原因。Date类并没有反应出UTC中的闰秒,它直接从操作系统取得时间。Calendar也是应该从操作系统取得时间。也就是说JVM在电脑上使用的Date和Calendar的毫秒数中都不包含leap second。
有些电脑采用GMT(Greenwich mean time) 格林尼治时间(等同于UT世界时间),GMT是生活中的叫法,UT是科学上的叫法。UTC是根据原子钟,UT是根据天文观测。
Date中设置或者返回年,月,日,时,分,秒的值:
- A year y is represented by the integer y - 1900.
- A month is represented by an integer from 0 to 11; 0 is January, 1 is February, and so forth; thus 11 is December.
- A date (day of month) is represented by an integer from 1 to 31 in the usual manner.
- An hour is represented by an integer from 0 to 23. Thus, the hour from midnight to 1 a.m. is hour 0, and the hour from noon to 1 p.m. is hour 12.
- A minute is represented by an integer from 0 to 59 in the usual manner.
- A second is represented by an integer from 0 to 61; 值 60 和 61 只对闰秒发生,尽管那样,也只用在实际正确跟踪闰秒的 Java 实现中。于按当前引入闰秒的方式,两个闰秒在同一分钟内发生是极不可能的,但此规范遵循 ISO C 的日期和时间约定。
java.sql.Date, java.sql.Time, java.sql.TimeStamp是java.util.Date类的子类。是给JDBC用来表示SQL DATE, SQL TIME和 SQL TIMESTAMP数据库字段。为了符合SQL对于自己数据类型的要求,上述3个Date子类都做了一定的限制。
java.sql.Date对一个毫秒值进行了简单的包装(毫秒值计算是从GMT时间 1970年1月1号0时0分0秒开始的),用来给JDBC表示一个SQL DATE的值。根据SQL DATE的规定,java.sql.Date对应实例的时分秒要等于0.
java.sql.Time对java.util.Date进行了简单的包装,用来给JDBC表示一个SQL TIME的值。这个字段的日期部分的值固定为January 1, 1970并且不可修改
疑问:
getTimeInMillis的时间偏移量(因为基准是1970年1月1号 GMT标准时间)
Calendar的getTimeInMillis的毫秒数,是否已经把历史上的毫秒数统计进去?使用格里高日历,应该没有包含。
发表评论
-
xml 字符串和xml Document相互转换、xml Document内容输出到http response
2012-11-05 10:07 5504import java.io.ByteArrayOutpu ... -
isAssignableFrom & isInstance
2012-11-02 14:34 1179java.lang.Object extended by ja ... -
Struts 1.1 ExceptionHandler(转)
2012-11-02 10:20 1364转自:SSH项目中利用Exce ... -
X.509、数字签名、CA(Certificate Authority)、自签名证书、PKI
2012-10-18 14:22 6257X.509是由国际电联电信委员会(ITU-T)为单点登录(SS ... -
keytool、keystore、jarsigner、生成自签名证书
2012-10-18 10:27 7953Keytool是Java的密钥和数字证书管理工具,位于JDK_ ... -
Java 类初始化顺序
2012-08-21 14:07 1059class Parent { // 静态变量 pu ... -
java嵌套类、静态嵌套类、内部类
2012-08-21 10:29 2078官网文档:Nested Classes 什么是嵌套类及内部类 ... -
java静态类、静态方法、静态变量、实例变量、线程本地变量、静态线程本地变量
2012-08-21 10:24 1847静态类: 只有嵌套类才 ... -
ProcessBuilder 和 Runtime
2012-07-17 09:26 20844ProcessBuilder.start() 和 Runtim ... -
对称加密、PBE基于密码加密、PKCS
2012-07-05 11:07 7672对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信 ... -
(转)xml schema xsd 入门
2012-06-28 16:05 2428理解XML Schema: XML Schema 初步 (I) ... -
XmlRootElement JAXB注解
2012-06-28 15:23 39006@Retention(value=RUNTIME) @T ... -
jaxb xml数据绑定
2012-06-28 14:22 1300XML Schema编辑工具:XML Spy 常见的XML绑 ... -
(转)jpa 注解
2012-06-25 16:00 1287转自:jpa 注解 1.设置Po ... -
(转)JPA(Java Persistence API)简介
2012-06-25 14:20 1509转自JPA基础(一):全 ... -
Play 内置模板标签(1.2.3版本)
2012-06-18 14:03 4966Play framework 1.2.3 Built-in t ... -
play plugin插件 实现类似Servlet中的拦截器效果
2012-06-15 15:05 3616play plugin和module的区别见:play Mod ... -
Play tag标签,模板、tag中直接调用后台静态java方法
2012-06-15 11:02 2957见Play Framework template engine ... -
play secure模块 验证和授权管理
2012-06-14 15:48 3384参考:http://www.playframework.org ... -
Play framework HTTP Route路由
2012-06-08 14:22 1663路由组件负责把进来的HTTP请求转换成Controller控制 ...
相关推荐
此扩展名将浏览器时区更改为随机或用户定义的值。 此扩展欺骗了JavaScript提供给网页的当前时区。您可以在选项页面中指定首选时区,并且附加组件可确保您的真实时区受到保护(网站不可见)。还有一个选项可以要求...
C语言头文件 LOCALE.HC语言头文件 LOCALE.HC语言头文件 LOCALE.HC语言头文件 LOCALE.HC语言头文件 LOCALE.HC语言头文件 LOCALE.HC语言头文件 LOCALE.HC语言头文件 LOCALE.HC语言头文件 LOCALE.HC语言头文件 LOCALE....
ResourceBundle Editor (eclipse-rbe)是一个用于编辑本地化的属性文件(localized properties files)。它让你通一个屏幕就能够同时管理所有相关联属性文件中的key/value信息。它所具有的功能包括:自动为Keys分类,...
utc2locale 从 Date#toUTCString() 到 Date#toLocaleString() 的流式方法。安装 $ npm install -g utc2locale用法正确运行 $ tail -f /path/to/your/log | utc2locale或者 $ utc2locale </path/to/your/log与 ...
Apps.Locale.resources.dll
locale-archive 和 locale-archive.tmpl 里面保存了这两个文件。这个是位于Linux系统 /usr/lib/locale 文件夹下的。 里面保存了比较全的字符集。
Locale详解Locale详解Locale详解Locale详解
java.util.Locale
date1.setTime(Time * 1000); mydate1 = format.format(date1); } catch (Exception e) { } return mydate1; } /** * 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数 */ public ...
timeZones和UTCOffset数组与时区及其对应的UTCOffset匹配。 尽管有些国家/地区像这样一个时区: { countryCode: "CL", countryName: "Chile", timeZones: [ "America/Punta_Arenas", "America/Santiago", ...
Laravel开发-locale Laravel 5本地化包
官网搬的Locale.Emulator,地址http://pooi.moe/Locale-Emulator/,GIT地址https://github.com/xupefei/Locale-Emulator非常简洁好用的转区工具希望大家能关注一下
而Date的其他构造方法和普通方法的API都不容易实现国际化,因此目前Date类的大多数方法都被标识为过时,表示更灵活的时间类请参考java.util.Calendar。 Date的输出结果是按照国际通用格式输出的,而中国更习惯于...
linux中locale自用总结 locale是根据计算机用户所使用的语言、所在国家或者地区、以及当地的文化传统所定义的一个软件运行时的语言环境。
这是一个可运行的小例子,测试locale的java代码
Swift 的 Date、DateFormatter、DateComponents、Locale 之间的关系说明 前言 理解这些类之间的关系,和这些类是干嘛的,对处理时间来说很重要 类名 说明 注意 Date 只是表示时间的一个数据,只表示时间节点...
Laravel开发-laravel-locale Laravel 5强大的本地化功能
Locale Emulator 可以提供类似 NTLEA 和 AppLocale 的转区功能,为访问github不便的人上传至csdn。访问github无碍的请戳 https://github.com/xupefei/Locale-Emulator/releases,
C语言头文件 XLOCALEC语言头文件 XLOCALEC语言头文件 XLOCALEC语言头文件 XLOCALEC语言头文件 XLOCALEC语言头文件 XLOCALEC语言头文件 XLOCALEC语言头文件 XLOCALEC语言头文件 XLOCALEC语言头文件 XLOCALEC语言...