Java——java.text.SimpleDateFormat的用法

原文链接:http://cncoke.iteye.com/blog/1397669

Date类内部既不存储年月日也不存储时分秒,而是存储一个从1970年1月1日0点0分0秒开始的毫秒数,而真正有用的年月日时分秒毫秒都是从这个毫秒数转化而来,这是它不容易被使用的地方,尤其是显示和存储的场合。但Date类的优势在于方便计算和比较。
另一点,日常生活中我们习惯用年月日时分秒这样的文本日期来表示时间,它方便显示和存储,也容易理解,但不容易计算和比较。
综上所述,我们在程序中进行日期时间处理时经常需要在在文本日期和Date类之间进行转换,为此我们需要借助java.text.SimpleDateFormat类来进行处理,下文列举了它的几个常用示例。

 

1.将Date转化为常见的日期时间字符串
这里我们需要用到java.text.SimpleDateFormat类的format方法,其中可以指定年月日时分秒的模式字符串格式。

Java代码   收藏代码
  1. Date date = new Date();  
  2. Format formatter = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");  
  3. System.out.println("转化的时间等于="+formatter.format(date));  

 

其中
yyyy表示四位数的年份
MM表示两位数的月份
dd表示两位数的日期
HH表示两位数的小时
mm表示两位数的分钟
ss表示两位数的秒钟

 

 

2.将文本日期转化为Date以方便比较
文本日期的优势在于便于记忆,容易处理,但缺点是不方便比较,这时我们需要借助SimpleDateFormat的parse方法得到Date对象再进行比较,实例如下:

Java代码   收藏代码
  1. String strDate1="2004年8月9日";  
  2. String strDate2="2004年10月5日";  
  3.   
  4. SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy年MM月dd日");  
  5. java.util.Date date1 = myFormatter.parse(strDate1);  
  6.   
  7. java.util.Date date2 = myFormatter.parse(strDate2);  
  8.   
  9. // Date比较能得出正确结果  
  10. if(date2.compareTo(date1)>0){  
  11.       System.out.println(strDate2+">"+strDate1);  
  12. }  
  13.   
  14. // 字符串比较得不出正确结果  
  15. if(strDate2.compareTo(strDate1)>0){  
  16.       System.out.println(strDate2+">"+strDate1);  
  17. }  

 

3.将文本日期转化为Date以方便计算
文本日期的另一个大问题是不方便计算,比如计算2008年1月9日的100天后是那一天就不容易,此时我们还是需要把文本日期转化为Date进行计算,再把结果转化为文本日期:

Java代码   收藏代码
  1. SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy年MM月dd日");  
  2. java.util.Date date = myFormatter.parse("2008年1月9日");  
  3. date.setDate(date.getDate()+100);  
  4.   
  5. // 得到2008年04月18日  
  6. System.out.println("100天后为"+myFormatter .format(date));  

 
javaScript中的日期
 // date= "2003/12/18 ";     //正确的字符串表示日期的格式 
  //d=new   Date(date); 
  //yy=d.getFullYear();   //取满年 
 //mm=d.getMonth()+1;   //取月份 
 //dd=d.getDate();   //取日期 
 //ww=d.getDay();
  var d=new Date();
  //d.setFullYear(2003,3,34);//其中3表示4月,34表示不在指定天数范围内时,会自动调整
  var s=d.toCommonCase();
  //var s1=d.toLocaleString();
  //var result=s1.split("年");
  //var y=result[1].split("月");
  //alert(y[0]);


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值