利用DateFormat、Date、Calendar等类 对含有时间的字符串进行提取和计算

来源:互联网 发布:淘宝 贴吧 编辑:程序博客网 时间:2024/06/05 16:38

在时间提取方面我用了三种方法,最开始使用的是正则表达式,很简洁,

之后使用的是Date类中的方法,但这种方法都已过时,

最后使用的是Calendar类的方法。、


我推荐使用正则表达式,简洁实用;



package cn.hanfeng.example13_6;



import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class Example2 {

       public static  void main(String args[]) throws ParseException{


           //Date类中的方法

      String time2="2016-04-07 16:35:36";
        SimpleDateFormat matter2= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        Date tr2=matter2.parse(time2);
      Calendar calendar2 = Calendar.getInstance();
      calendar2.setTime(tr2);
          System.out.println("年:"+calendar2.get(Calendar.YEAR));
          int month=calendar2.get(Calendar.MONTH)+1;
          System.out.println("月:"+month);
          System.out.println("日:"+calendar2.get(Calendar.DATE));
          int hour=calendar2.get(Calendar.HOUR)+12;
        System.out.println("时:"+hour);
        System.out.println("分:"+calendar2.get(Calendar.MINUTE));
        System.out.println("秒:"+calendar2.get(Calendar.SECOND));
        
        
         //Calendar类的方法
          String time3="2016-04-07 16:35:36";
        SimpleDateFormat matter3= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        Date tr3=matter3.parse(time3);
        int year=tr3.getYear()+1900;
        System.out.println("年:"+year);
        int month2=tr3.getMonth()+1;
        System.out.println("月:"+month2);
        System.out.println("日:"+tr3.getDate());
        System.out.println("时:"+tr3.getHours());
        System.out.println("分:"+tr3.getMinutes());
        System.out.println("秒:"+tr3.getSeconds());
      
       //正则表达式
      Pattern p=Pattern.compile("(\\d{4})-(\\d{1,2})-(\\d{1,2})\\s(\\d{1,2}):(\\d{1,2}):(\\d{1,2})");  
      Matcher m=p.matcher("2016-04-07 16:35:36");  
      if(m.find()){  
          System.out.println("日期:"+m.group());  
          System.out.println("年:"+m.group(1));  
          System.out.println("月:"+m.group(2));  
          System.out.println("日:"+m.group(3));
          System.out.println("时:"+m.group(4));  
          System.out.println("分:"+m.group(5));  
          System.out.println("秒:"+m.group(6));
      } 

           //判断并输出该字符串表示的时间是该年度第几周、第几天。
           String time="2016-04-07 16:35:36";
      SimpleDateFormat matter= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      Date tr=matter.parse(time);
      Calendar calendar = Calendar.getInstance();
      calendar.setFirstDayOfWeek(Calendar.MONDAY);
      calendar.setTime(tr);
      System.out.println("这是"+calendar.get(Calendar.YEAR)+"中的第"+calendar.get(Calendar.WEEK_OF_YEAR)+"周");
      System.out.println("这是"+calendar.get(Calendar.YEAR)+"中的第"+calendar.get(Calendar.DAY_OF_YEAR)+"天");
       }


}
阅读全文
0 0
原创粉丝点击