DateFormat和SimpleDateFormat

本文介绍如何使用SimpleDateFormat类进行日期时间的格式化操作,包括从String转换到Date类型及反之的操作,并提供了具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

都是用来格式化时间的。常用的方法是parse和format,parse是将String形式的时间转成Date类型,format是将Date时间转成String。

DateFormat是一个抽象类,很少直接使用,可以根据Locate指定的区域不同得到不同的日期时间显示效果。

一般是用SimpleDateFormat,其继承自DateFormat。

二者都不是同步的,所以建议为每个线程创建独立的格式实例,如果多个线程同时访问一个格式,则它必须保持外部同步。

所以不要定义static的SimpleDateFormat对象,不然findbugs会提示“Call to method of static java.text.DateFormat“。


只看下面的例子就一清二楚了:

  1.  public static void main(String args[])
  2. {  
  3.         String strDate = "2008-10-19 10:11:30.345" ;  
  4.         String pat1 = "yyyy-MM-dd HH:mm:ss.SSS" ;  
  5.         String pat2 = "yyyy年MM月dd日 HH时mm分ss秒SSS毫秒" ;  
  6.         SimpleDateFormat sdf1 = new SimpleDateFormat(pat1) ; 
  7.         SimpleDateFormat sdf2 = new SimpleDateFormat(pat2) ;
  8.         Date d = null ;  
  9.         try
  10.        {  
  11.             d = sdf1.parse(strDate) ;   // 将给定的字符串中的日期提取出来  
  12.         }catch(Exception e)
  13.         {          
  14.             e.printStackTrace() ;
  15.         }  
  16.         System.out.println(sdf2.format(d)) ;    // 将日期变为新的格式  
  17.     } 

       pat1的形式尽量和strDate一样,也可以比它短,后面部分解析出来是0,但分隔符得一致,否则抛异常。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值