① 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了