利用DateFormat、Date、Calendar等類 對含有時間的字串進行提取和計算
阿新 • • 發佈:2019-02-03
在時間提取方面我用了三種方法,最開始使用的是正則表示式,很簡潔,
之後使用的是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)+"天");
}
}