http://www.sunchis.com/html/java/basic/2010/0303/39.html
1、java.util.Date类
用于表示日期和时间,要获取当前时间,可以使用下面的代码:
- Dated=newDate();
- System.out.println(d.toString());
下面是输出的结果:
Mon Feb 06 15:45:47 CST 2006
如果想按照特定的格式进行输出,可以按照下面的方法完成,但是现在的版本中建议不要使用。
- intyear=d.getYear()+1900;
- intmonth=d.getMonth()+1;
- intdate=d.getDate();
- inthour=d.getHours();
- intminute=d.getMinutes();
- intsecond=d.getSeconds();
- System.out.println(year+"-"+month+"-"+date+""+hour+":"+minute+":"+second);
执行的结果如下:
2006-2-6 15:52:31
如果想根据年月日来确定一个Date对象可以先创建一个对象,然后使用 setter方法来完成,例如:setYear(int)、setMonth(int)等,当然这些方法也是建议不使用。如果想对时间进行比较灵活的处理可以使用DateFormat和SimpleDateFormat。
如果想按照下面的格式进行输出:
2006年02月06日 16点05分37秒
可以使用下面的代码:
- DateFormatdf=newSimpleDateFormat("yyyy年MM月dd日hh点mm分ss秒");
- Stringstr=df.format(d);
- System.out.println(str);
格式中yyyy表示年份,可以写2位,MM表示月份,可以写1位,dd表示日,可以写1位,hh表示小时,mm表示分钟(注意大小写),ss表示秒。
注意:DateFormat和SimpleDateFormat在 java.text包中,使用的时候需要引入。
要想把一个日期字符串转换成一个时间,例如把“2006-2-6”转换成日期,可以使用下面的代码:
- Stringdates="2006-2-6";
- //定义日期字符串
- DateFormatdf2=newSimpleDateFormat("yyyy-MM-dd");
- //定义日期字符串的格式
- Dated2;
- //声明日期对象
- try{
- d2=df2.parse(dates);
- //把日期字符串转换成日期
- System.out.println(df2.format(d2));
- }catch(ParseExceptionex){
- }
需要注意的是在转换的时候需要进行异常处理,因为在转换的时候可能会产生异常。
下面再来看看一些关于日期和时间的转换符:
常见日期格式化转换符
| 转换符 | 说 明 | 示 例 |
| %te | 一个月中的某一天(1~31) | 2 |
| %tb | 指定语言环境的月份简称 | Feb(英文)、二月(中文) |
| %tB | 指定语言环境的月份全称 | February(英文)、二月(中文) |
| %tA | 指定语言环境的星期几全称 | Monday(英文)、星期一(中文) |
| %ta | 指定语言环境的星期几简称 | Mon(英文)、星期一(中文) |
| %tc | 包括全部日期和时间信息 | 星期四 十一月 26 10:26:30 CST 2009 |
| %tY | 4位年份 | 2009 |
| %tj | 一年中的第几天(001~366) | 085 |
| %tm | 月份 | 03 |
| %td | 一个月中的第几天(01~31) | 08 |
| %ty | 2位年份 | 09 |
时间格式化转换符
| 转换符 | 说 明 | 示 例 |
| %tH | 2位数字的24小时制的小时(00~23) | 14 |
| %tI | 2位数字的12小时制的小时(01~12) | 05 |
| %tk | 2位数字的24小时制的小时(1~23) | 5 |
| %tl | 2位数字的12小时制的小时(1~12) | 10 |
| %tM | 2位数字的分钟(00~59) | 05 |
| %tS | 2位数字的秒数(00~60) | 12 |
| %tL | 3位数字的毫秒数(000~999) | 920 |
| %tN | 9位数字的微秒数(000000000~999999999) | 062000000000 |
| %tp | 指定语言环境下上午或下午标记 | 下午(中文)、pm(英文) |
| %tz | 相对于GMT RFC 82格式的数字时区偏移量 | +0800 |
| %tZ | 时区缩写形式的字符串 | CST |
| %ts | 1970-01-01 00:00:00至现在经过的秒数 | 1206426646 |
| %tQ | 1970-01-01 00:00:00至现在经过的毫秒数 | 1206426737453 |
常见的日期时间组合转换符
| 转换符 | 说 明 | 示 例 |
| %tF | “年-月-日”格式(4位年份) | 2009-01-26 |
| %tD | “月/日/年”格式(2位年份) | 03/25/09 |
| %tr | “时:分:秒 PM(AM)”格式(12小时制) | 03:22:06 下午 |
| %tT | “时:分:秒”格式(24小时制) | 15:23:50 |
| %tR | “时:分”格式(24小时制) | 15:23 |
看个小例子:
- packagedate;
- importjava.util.Date;
- publicclassDateAndTime{
- publicstaticvoidmain(String[]args){
- Datedate=newDate();
- Stringtime=String.format("%tc",date);
- Stringform=String.format("%tF",date);
- System.out.println("全部的时间信息是:"+time);
- System.out.println("年-月-日的日期格式:"+form);
- }
- }
运行结果如下:
全部的时间信息是:星期三 三月 03 22:50:36 CST 2010
年-月-日的日期格式:2010-03-03
本文介绍Java中日期时间处理的方法,包括使用Date类获取当前时间、按照特定格式输出日期时间及利用SimpleDateFormat进行自定义格式化。
9492

被折叠的 条评论
为什么被折叠?



