[Java] 時間格式轉換
日期時間主要運用到的三個類別
01.SimpleDateFormat
定義日期時間格式
將字串轉為Date型 parse(字串)回傳Date
將Date依照設定格式轉為字串 format(Date)回傳字串
02.Date(java.util.Date)
日期時間類別
Date dt=new Date() 取得當下時間
Date dt=new Date(1356689117695) 可傳入unixTime取得
dt.getTime() 取得unixTime毫秒 Long型別
03.Calendar
日曆類別
Calendar calendar = Calendar.getInstance() 取得當下時間
calendar(Date) 傳入date,指定時間
calendar.getTime() 取得Date形別
常見用法
01.取得現在日期時間字串
//先行定義時間格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//取得現在時間
Date dt=new Date();
//透過SimpleDateFormat的format方法將Date轉為字串
String dts=sdf.format(dt);
02.取得某時間字串的 星期,上中下午
//定義好時間字串的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//將字串轉成Date型
Date dt =sdf.parse("2013/01/07 11:49:00");
//定義要取的內容
SimpleDateFormat sdf5 = new SimpleDateFormat("E");//星期
SimpleDateFormat sdf6 = new SimpleDateFormat("a");//時段
//取出
String day=sdf5.format(dt);//星期
String td=sdf6.format(dt);//時段(會依照各手機系統不同,有差異.有些只有上午下午,有些則是有凌晨,中午等更詳細的描述)
03.讀取Unix時間格式,轉以字串顯示
//讀取Unix時間
Date dt=new Date(1356689117695);//UnixTime毫秒
//定義時間格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//轉換字串
String time=sdf.format(dt);
04.讀取日期字串,透過calendar做日期時間加減的動作,再轉回日期字串
//定義好時間字串的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//將字串轉成Date型
Date dt =sdf.parse("2013/01/07 11:49:00");
//新增一個Calendar,並且指定時間
Calendar calendar = Calendar.getInstance();
calendar.setTime(dt);
calendar.add(Calendar.MONTH, 2);//月份+2
calendar.add(Calendar.HOUR, -1);//小時-1
Date tdt=calendar.getTime();//取得加減過後的Date
//依照設定格式取得字串
String time=sdf.format(tdt);
05.計算兩個時間差距
//定義時間格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//取的兩個時間
Date dt1 =sdf.parse("2012/12/31 11:49:00");
Date dt2 =sdf.parse("2013/01/10 11:49:00");
//取得兩個時間的Unix時間
Long ut1=dt1.getTime();
Long ut2=dt2.getTime();
//相減獲得兩個時間差距的毫秒
Long timeP=ut2-ut1;//毫秒差
Long sec=timeP/1000;//秒差
Long min=timeP/1000*60;//分差
Long hr=timeP/1000*60*60;//時差
Long day=timeP/1000*60*60*24;//日差
06.取得星期
Date date=new Date();
int day=date.getDay();
0~6表示禮拜日到禮拜六
但是根據api描述
This method is deprecated.此方法已經過時
建議使用Calender
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date dt =sdf.parse("2012/12/31 11:49:00");
Calendar calendar = Calendar.getInstance();//取得目前時間
calendar.setTime(dt);//或是設定指定時間
int day=calendar.get(Calendar.DAY_OF_WEEK);
1~7代表禮拜日至禮拜六
留言
張貼留言