J2EE开发中的各种日期类型总结
来源:互联网 发布:海岛奇兵小怪升级数据 编辑:程序博客网 时间:2024/04/25 02:26
本人根据自己的经验总结,如果有不足,请大家指教:
一. Java中的日期格式
字母 日期或时间元素 表示 示例 G Era标志符 Text AD y 年 Year 1996;96 M 年中的月份 Month July; Jul;07 w 年中的周数 Number 27 W 月份中的周数 Number 2 D 年中的天数 Number 189 d 月份中的天数 Number 10 F 月份中的星期 Number 2 E 星期中的天数 Text Tuesday;Tue a Am/pm标记 Text PM H 一天中的小时数 (0-23) Number 0 k 一天中的小时数 (1-24) Number 24 K am/pm中的小时数 (0-11) Number 0 h am/pm中的小时数 (1-12) Number 12 m 小时中的分钟数 Number 30 s 分钟中的秒数 Number 55 S 毫秒数 Number 978 z 时区 General timezone Pacific Standard Time; PST;GMT-08:00 Z 时区 RFC 822 timezone -0800 可以使用SimpleDateFormat进行转换,代码如下: longl=System.currentTimeMillis(); Date now=newDate(l); SimpleDateFormatsdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sdf.format(now)); //输出获取的当前的时间 日期和时间模式 结果 "yyyy.MM.dd G 'at' HH:mm:ssz" 2001.07.04 AD at 12:08:56PDT "EEE, MMM d,''yy" Wed, Jul 4,'01 "h:mm a" 12:08PM "hh 'o''clock' a,zzzz" 12 o'clockPM, Pacific DaylightTime "K:mm a,z" 0:08 PM,PDT "yyyyy.MMMMM.dd GGG hh:mmaaa" 02001.July.04 AD 12:08PM "EEE, d MMM yyyy HH:mm:ssZ" Wed, 4 Jul2001 12:08:56-0700 "yyMMddHHmmssZ" 010704120856-0700 "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700 二. JavaScript中的日期格式: JavaScript中没有设置格式的方式,只有一些方法,可以获取多种格式的事件 Date(日期/时间对象) Date操作日期和时间的对象 Date.getDate() 返回一个月中的某一天 Date.getDay() 返回一周中的某一天 Date.getFullYear() 返回Date对象的年份字段 Date.getHours() 返回Date对象的小时字段 Date.getMilliseconds() 返回Date对象的毫秒字段 Date.getMinutes() 返回Date对象的分钟字段 Date.getMonth() 返回Date对象的月份字段 Date.getSeconds() 返回Date对象的秒字段 Date.getTime() 返回Date对象的毫秒表示 Date.getTimezoneOffset() 判断与GMT的时间差 Date.getUTCDate() 返回该天是一个月的哪一天(世界时) Date.getUTCDay() 返回该天是星期几(世界时) Date.getUTCFullYear() 返回年份(世界时) Date.getUTCHours() 返回Date对象的小时字段(世界时) Date.getUTCMilliseconds() 返回Date对象的毫秒字段(世界时) Date.getUTCMinutes() 返回Date对象的分钟字段(世界时) Date.getUTCMonth() 返回Date对象的月份(世界时) Date.getUTCSeconds() 返回Date对象的秒字段(世界时) Date.getYear() 返回Date对象的年份字段(世界时) Date.parse( )解析日期/时间字符串 Date.setDate() 设置一个月的某一天 Date.setFullYear() 设置年份,也可以设置月份和天 Date.setHours() 设置Date对象的小时字段、分钟字段、秒字段和毫秒字段 Date.setMilliseconds() 设置Date对象的毫秒字段 Date.setMinutes() 设置Date对象的分钟字段和秒字段 Date.setMonth() 设置Date对象的月份字段和天字段 Date.setSeconds() 设置Date对象的秒字段和毫秒字段 Date.setTime() 以毫秒设置Date对象 Date.setUTCDate() 设置一个月中的某一天(世界时) Date.setUTCFullYear() 设置年份、月份和天(世界时) Date.setHours() 设置Date对象的小时字段、分钟字段、秒字段和毫秒字段(世界时) Date.setUTCMilliseconds() 设置Date对象的毫秒字段(世界时) Date.setUTCMinutes() 设置Date对象的分钟字段和秒字段(世界时) Date.setUTCMonth() 设置Date对象的月份字段和天数字段(世界时) Date.setUTCSeconds() 设置Date对象的秒字段和毫秒字段(世界时) Date.setYear() 设置Date对象的年份字段 Date.toDateString() 返回Date对象日期部分作为字符串 Date.toGMTString() 将Date转换为世界时字符串 Date.toLocaleDateString() 回Date对象的日期部分作为本地已格式化的字符串 Date.toLocaleString() 将Date转换为本地已格式化的字符串 Date.toLocaleTimeString() 返回Date对象的时间部分作为本地已格式化的字符串 Date.toString() 将Date转换为字符串 Date.toTimeString() 返回Date对象日期部分作为字符串 Date.toUTCString() 将Date转换为字符串(世界时) Date.UTC( )将Date规范转换成毫秒数 Date.valueOf() 将Date转换成毫秒表示 但是在JavaScript中不能获取当前月的天数,如果有需要,可以找我要,我有自己写的获取当月天数的js脚本 三. MySql中的日期格式: 日期类型 存储空间 日期格式 日期范围 --------------------- -------------------------------------------------------------- datetime 8bytes YYYY-MM-DDHH:MM:SS 1000-01-01 00:00:00 ~9999-12-31 23:59:59 timestamp 4bytes YYYY-MM-DDHH:MM:SS 1970-01-01 00:00:01 ~2038 date 3bytes YYYY-MM-DD 1000-01-01 ~9999-12-31 year 1bytes YYYY 1901 ~2155 1. MySQL Str to Date(字符串转换为日期)函数:str_to_date(str,format): selectstr_to_date('08/09/2008', '%m/%d/%Y'); --2008-08-09 select str_to_date('08/09/08', '%m/%d/%y'); --2008-08-09 selectstr_to_date('08.09.2008', '%m.%d.%Y'); --2008-08-09 selectstr_to_date('08:09:30', '%h:%i:%s'); --08:09:30 selectstr_to_date('08.09.2008 08:09:30', '%m.%d.%Y %h:%i:%s'); --2008-08-09 08:09:30 可以看到,str_to_date(str,format)转换函数,可以把一些杂乱无章的字符串转换为日期格式。另外,它也可以转换为时间。 “format” 可以参看 MySQL手册。 2. MySQL Date/Time toStr(日期/时间转换为字符串)函数:date_format(date,format),time_format(time,format) selectdate_format('2008-08-08 22:23:00', '%W %M %Y'); --FridayAugust 2008 selectdate_format('2008-08-08 22:23:01','%Y%m%d%H%i%s'); --20080808222301 selecttime_format('22:23:01', '%H.%i.%s'); 22.23.01 MySQL日期、时间转换函数:date_format(date,format), time_format(time,format)能够把一个日期/时间转换成各种各样的 字符串格式。它是str_to_date (str,format) 函数的一个逆转换。 3. MySQL拼凑日期、时间函数:makdedate(year,dayofyear),maketime(hour,minute,second) selectmakedate(2001,31); --'2001-01-31' selectmakedate(2001,32); --'2001-02-01' select maketime(12,15,30); --'12:15:30' 4.mysql中的datetime和timestamp DATETIME:日期和时间的组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-3123:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。 TIMESTAMP[(M)]:时间戳。范围是'1970-01-01 00:00:00'到2037年。 TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为 最近操作的日期和时间。也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。 5.获取系统当前时间:selectnow(); 四.Oracle中的时间格式:由于不常使用,所以就不多说了,简要说一下: DD-MON-RR日期的缺省显示格式 获取系统的时间:select sysdate fromdual; 修改系统事件的默认显示格式(仅在本次终端下有效):alter session set nls_date_format = 'yyyymm dd hh24:mi:ss'; 将日期转换为char类型输出:selectto_char(sysdate,'yyyy mm dd hh24:mi:ss') fromdual; 将char类型转换为date类型输出: selectto_date('01-JAN-12','DD-MON-rr') from dual; selectto_date('2008 08 08 08:08:08','yyyy mm dd hh24:mi:ss');