① java如何把時間格式轉為毫秒
獲取毫秒數,即long類型的數值,僅能返回自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數。
一樓、二樓的回答就是正確的,不過在使用中還需要根據自身使用環境,直接使用或者進一步按需優化後再使用。
最常使用的就是,把String類型的日期先轉換為Date類型,最後直接調用.getTime()即可,這也是比較方便的了。
還有就是以上提到的Timestamp類中的valueOf(String s) 方法,這里一定要注意,給定的字元串日期型數據必須符合置頂指定格式:yyyy-mm-dd hh:mm:ss[.fffffffff],否則會拋出異常。
PS>
② Java如何根據TimeZone轉換時間,可以給出相關的例子嗎謝謝
通過TimeZone的getTimeZone方法來實現,具體可參考下面代碼例子:
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
importjava.util.GregorianCalendar;
importjava.util.TimeZone;
publicclassCalendarTime{
publicstaticfinalStringDATE_PATTERN="yyyy-MM-ddHH:mm:ss";
privatestaticTimeZoneUSER_TIMEZONE=TimeZone.getTimeZone("PRC");
privatestaticTimeZoneGMT_TIMEZONE=TimeZone.getTimeZone("GMT");
publicstaticvoidmain(String[]args)throwsParseException{
System.out.println("starttest---------------------");
//
StringtestTime=newString("2008-02-0208:30:33");
System.out.println("");
System.out.println(testTime);
System.out.println("converttoGMTtime");
//
CalendargmtCal=CalendarTime
.(testTime);
System.out.println(getDateFormat(GMT_TIMEZONE).format(gmtCal.getTime())
+""+gmtCal.getTimeZone().getID());
CalendarlocalCal=convertGMTToCNTime(gmtCal);
System.out.println(localCal.getTime());
System.out.println("");
CalendarlocalTime=Calendar.getInstance();
localTime.set(2008,01,02,0,30,33);
System.out.println(localTime.getTime());
CalendargmtTime=convertCNTimeToGMT(localTime);
System.out.println(getDateFormat(GMT_TIMEZONE)
.format(gmtTime.getTime())
+""+gmtTime.getTimeZone().getID());
StringlocalStr=convertToLocalTimeString(gmtTime);
System.out.println(localStr);
}
/**
*getadateformatforanytimezone
*
*@paramtimeZone
*@return
*/
(TimeZonetimeZone){
SimpleDateFormatformater=newSimpleDateFormat(DATE_PATTERN);
formater.setTimeZone(timeZone);
returnformater;
}
/**
*
*
*@paramcalendar
*@return
*/
(Calendarcalendar){
if(null==calendar){
returnnull;
}
returngetDateFormat(USER_TIMEZONE).format(calendar.getTime());
}
/**
*
*
*@paramtime
*@return
*@throwsParseException
*/
publicstaticCalendar(Stringtime)
throwsParseException{
Datedate=getDateFormat(USER_TIMEZONE).parse(time.trim());
Calendarcalendar=newGregorianCalendar(GMT_TIMEZONE);
calendar.setTime(date);
returncalendar;
}
/**
*
*willnotchangeitstime
*
*@paramtime
*@return
*/
(Calendartime){
time.setTimeZone(GMT_TIMEZONE);
CalendarcnTime=Calendar.getInstance();
intbegin_year=time.get(Calendar.YEAR);
intbegin_month=time.get(Calendar.MONTH);
intbegin_day=time.get(Calendar.DAY_OF_MONTH);
intbegin_hour=time.get(Calendar.HOUR_OF_DAY);
intbegin_minute=time.get(Calendar.MINUTE);
intbegin_second=time.get(Calendar.SECOND);
cnTime.set(Calendar.YEAR,begin_year);
cnTime.set(Calendar.MONTH,begin_month);
cnTime.set(Calendar.DAY_OF_MONTH,begin_day);
cnTime.set(Calendar.HOUR_OF_DAY,begin_hour);
cnTime.set(Calendar.MINUTE,begin_minute);
cnTime.set(Calendar.SECOND,begin_second);
returncnTime;
}
/**
*
*willnotchangeitstime
*
*@paramcnTime
*@return
*/
(CalendarcnTime){
Calendarresult=newGregorianCalendar(GMT_TIMEZONE);
intyear=cnTime.get(Calendar.YEAR);
intmonth=cnTime.get(Calendar.MONTH);
intday=cnTime.get(Calendar.DAY_OF_MONTH);
inthour=cnTime.get(Calendar.HOUR_OF_DAY);
intminute=cnTime.get(Calendar.MINUTE);
intsecond=cnTime.get(Calendar.SECOND);
result.set(Calendar.YEAR,year);
result.set(Calendar.MONTH,month);
result.set(Calendar.DAY_OF_MONTH,day);
result.set(Calendar.HOUR_OF_DAY,hour);
result.set(Calendar.MINUTE,minute);
result.set(Calendar.SECOND,second);
returnresult;
}
}
starttest---------------------
2008-02-0208:30:33
converttoGMTtime
2008-02-0200:30:33GMT
SatFeb0200:30:33GMT+08:002008
SatFeb0200:30:33GMT+08:002008
2008-02-0200:30:33GMT
2008-02-0208:30:33
③ java如何將GMT格式時間字元串轉換為java.util.Date對象
public Date getDate(String time) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = sdf.parse(time);
return date;
}
④ java中怎麼將日期轉換為GMT格式
其實不管建不建議,能用就行,不非得用推薦的。
String toGMT(Date date) {
try {
SimpleDateFormat format = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
Calendar cal = Calendar.getInstance(new SimpleTimeZone(0, "GMT"));
format.setCalendar(cal);
return format.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
}
⑤ java中已知一個時區TimeZone,想取下一個時區如何取
在TimeZone類中有個靜態方法getAvailableIDs(int rawoffset) 可以獲取rawoffset對應的所有的時區id,其中參數表示時間偏移量,用毫秒錶示,例如東八區,則為8*60*60*1000。有了區域ID,就可以根據靜態方法getTimeZone(String zoneId)獲取對應的區域了。
所以獲取一個時間對應的所有區域就可以實現為:
TimeZonetz=TimeZone.getDefault();
intrawOffset=8;
String[]ids=TimeZone.getAvailableIDs(rawOffset*60*60*1000);
for(Stringid:ids){
tz=TimeZone.getTimeZone(id);
}
針對題主的要求,拿到tz之後,需要獲得下一個時區,可以這樣實現
TimeZonetz=TimeZone.getTimeZone("GMT+8:00");
intx=1;//可以為-2、-1、1、2。。。先獲取rawoffset,再獲取時區
intrawOffset=tz.getRawOffset()+x*60*60*1000;
String[]ids=TimeZone.getAvailableIDs(rawOffset);
for(Stringid:ids){
TimeZonenexttz=TimeZone.getTimeZone(id);
}
⑥ java時間格式轉換 Thu Dec 24 17:33:00 GMT+08:00 2015 我想轉
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String str=df.format(date);
⑦ java怎麼獲取gmt當前的系統時間
Date now = new Date(); 當前時間就是now,你試著列印一下就出來了,如果對日期時間格式有要求,就SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設置日期格式,不就OK了