java时间之-java.util.Date解析

           java的时间处理我们习惯上用java.util.Date. 尽管java.util.Calender功能更加实用。今天忽然又用到了,发现它麻雀虽小,五脏俱全。很有发掘的必要。

           对于java.util.Date.是我们用得最多的,但其实它还是在jdk1.1中定义的,好多方法已经被deprecated。详见官方的jdk说明:

在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃。

 

            尽管如此,还是说一下,java.util.Date 中的getYear()方法,它是从1900作为起点开始的,所以今年通过getYear()的到的整数是109而不是我们认为的2009. 所以,要想得到2009,我们必须getYear()+1900才是我们想要的。
           getMonth()方法得到的integer的范围是0-11,也就是说0是一月,11代表12月,所以通常我们需要getMonth()+1才是我们期待的真正的月份。
           其他相应的,日期1-31,小时0-23,分钟0-59,秒0-61,这里的秒为什么有60和61,涉及到润秒的问题。可能大家只听说润年还从来没听说过润秒吧。要知详情,可以参考jdk文档。这里就不累述了。
          下面看看代码的演示及结果。
        

public static void main(String[] args) {
Date date=new Date();
System.out.println(”现在的时间是:”+date);// 现在的时间是:Wed Jan 07 12:24:59 CST 2009
System.out.println(”年:”+(date.getYear()+1900));// 年:2009
System.out.println(”月:”+(date.getMonth()+1));//月:1
System.out.println(”日:”+date.getDate());// 日:7
System.out.println(”时”+date.getHours());// 时12
System.out.println(”分”+date.getMinutes());// 分24
System.out.println(”秒”+date.getSeconds());//秒59
}

 

 

          关于java.util.Date 我们常用的方法还有两个,一个是它的带参构造函数Date(long int),一个是它的成员方法getTime(),返回时间所表示的毫秒数。其他的Date(String str), parse(String str)都可以将时间字符串转换为时间,但是均已deprecated,如果需要,建议用DateFormat.parse(String s)。
          DateFormat是abstract class,无法实例化为具体的对象,更多的时间处理我们实用它的子类SimpleDateFormat.下面看看如何利用DateFormat进行String和Date的相互转换。
         

public static void main(String[] args) throws ParseException {
//string转换为日期
DateFormat df=new SimpleDateFormat(”yyyy-MM-dd hh-mm-ss”);
String str=”2008-08-08 08-08-08″;
Date stringDate=df.parse(str);//显示结果:Fri Aug 08 08:08:08 CST 2008
//日期转为String
DateFormat df2=new SimpleDateFormat(”yyyy年MM月dd日 hh时mm分ss秒”);
String dateString=df2.format(stringDate);//显示结果:2008年08月08日 08时08分08秒
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值