Java Android 日期時間應用筆記

  • 79935
  • 0
  • 2013-04-26

摘要:Java Android 日期時間應用筆記

日期時間主要運用到的三個類別

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代表禮拜日至禮拜六