Java日期轉換,java日期
涉及的核心類:Date類、SimpleDateFormat類、Calendar類
一、 Date型與long型
Date date = new Date();//取得目前時間Date類型
long date2long = date.getTime();//Date轉long
long cur = System.currentTimeMills();//取得目前時間long型返回
Date long2date = new Date(cur);//long轉Date
二、Date型與String型
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");//設定目標轉換格式為yyyy-MM-dd HH:mm:ss.SSS
String date2string = sdf.format(date);//Date轉String
String str="2001-11-03 11:12:33.828";//設定初始string類型日期
Date str2date=sdf.parse(str);//String轉Date
三、Date型與Calendar型
Calendar cal = Calendar.getInstance();//取得目前時間Calendar類型
cal.setTime(date); //Date轉Calendar
Calendar cal = Calendar.getInstance();//取得目前時間Calendar類型
Date cal2date = cal.getTime();//Calendar轉Date
四、總結
- String與基本類型之間的轉換依靠的是String.valueOf()方法
- Date與String類之間的轉換依靠的是SimpleDateFormat類
- Date與long轉換依靠的是Date提供的構造以及getTime()方法
- Date與Calendar轉換依靠的是Calendar提供的setTime()及getTime()方法
五、面試題
Q:寫一個方法,參數是Date date,將date往後推3天,在以“yyyy-mm-dd”格式返回字串類型
public String add3Day(Date date) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(date);//Date轉換為Calendar
cal.add(Calendar.DATE, 3);//將日期往後推3天,減少3天則-3. 月增加則Calendar.MONTH
String after = sdf.format(cal.getTime());//Calendar轉換為Date,再轉換為String
return after;
}