【Java】時間處理

當前時間

Calendar cal = Calendar.getInstance();  //實例化
Date today = new Date(); //Date類的當前時間

打印cal(類形式)java

java.util.GregorianCalendar[time=1406185232225,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2014,MONTH=6,WEEK_OF_YEAR=30,WEEK_OF_MONTH=4,DAY_OF_MONTH=24,DAY_OF_YEAR=205,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=0,SECOND=32,MILLISECOND=225,ZONE_OFFSET=28800000,DST_OFFSET=0]code

獲取相應字段

Date date = cal.getTime()  //當前時間,Date對象
int year = cal.get(Calendar.YEAR); //獲取年份
int month = cal.get(Calendar.MONTH) + 1; //獲取月份,注意要從0開始
int day = cal.get(Calendar.DATE);  //獲取天數

int hour = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);

時間轉成String

SimpleDateFormat

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
String todaytime = formatter.format(today);

DateFormatUtils

須要用到commons-lang-2.4.jar的包orm

DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss")

String轉成時間

不要忘了加Locale.CANADA,要否則月份Jul解析不了,會出現unparseable。由於,simpleDateFormat會按當地時區進行解析,這時月份應爲中文的七月才能解析。對象

String time = "05/Jul/2014:00:01:01";
Calendar cal = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss", Locale.CANADA);
cal.setTime(formatter.parse(time));

時間運算

Calendar提供add()方法進行運算,第一個參數指明字段,第二個參數爲amount。要作減法,將amount置爲負數便可。get

cal.add(Calendar.HOUR, -1);
相關文章
相關標籤/搜索