IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [转]Java日期时间及其格式化

    lincyang发表于 2011-02-25 08:29:00
    love 0

    本文转自:http://dengjianqiang200.blog.163.com/blog/static/65811920109145275546/

     

    1、java.util.Date类

     

    用于表示日期和时间,要获取当前时间,可以使用下面的代码:


    Date d = new Date();  
    System.out.println(d.toString()); 

    下面是输出的结果:

    Mon Feb 06 15:45:47 CST 2006

    如果想按照特定的格式进行输出,可以按照下面的方法完成,但是现在的版本中建议不要使用。


    int year = d.getYear()+1900;  
    int month = d.getMonth()+1;  
    int date = d.getDate();  
    int hour = d.getHours();  
    int minute = d.getMinutes();  
    int second = 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秒

    可以使用下面的代码:


    DateFormat df = new SimpleDateFormat("yyyy年MM月dd日 hh点mm分ss秒");  
    String str = df.format(d);  
    System.out.println(str); 

    格式中yyyy表示年份,可以写2位,MM表示月份,可以写1位,dd表示日,可以写1位,hh表示小时,mm表示分钟(注意大小写),ss表示秒。

    注意:DateFormat和SimpleDateFormat在 java.text包中,使用的时候需要引入。

    要想把一个日期字符串转换成一个时间,例如把“2006-2-6”转换成日期,可以使用下面的代码:


    String dates = "2006-2-6";  
    //定义日期字符串  
    DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");  
    //定义日期字符串的格式  
    Date d2;  
    //声明日期对象  
    try {  
        d2 = df2.parse(dates);  
        //把日期字符串转换成日期  
        System.out.println(df2.format(d2));  
    }catch (ParseException ex) {  
    } 

    需要注意的是在转换的时候需要进行异常处理,因为在转换的时候可能会产生异常。

    下面再来看看一些关于日期和时间的转换符:

     


    常见日期格式化转换符

    转换符 说  明 示  例
    %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

    看个小例子:


    package date;  
     
    import java.util.Date;  
     
    public class DateAndTime {  
        public static void main(String[] args) {  
            Date date = new Date();  
            String time = String.format("%tc", date);  
            String form = String.format("%tF", date);  
              
            System.out.println("全部的时间信息是:"+time);  
            System.out.println("年-月-日的日期格式:"+form);  
        }  
     
    } 

    运行结果如下:

    全部的时间信息是:星期三 三月 03 22:50:36 CST 2010

    年-月-日的日期格式:2010-03-03

     

    注:格式说明符语法

     



沪ICP备19023445号-2号
友情链接