java中utc时间怎么转换为本地时间

Python039

java中utc时间怎么转换为本地时间,第1张

计算机用的是unix纪元,1970年1月1日 0时0分 UTC(协调世界时 即升级版的格林威治时间)

可以说是英国标准时间。

中国是UTC+8 八区,中国本地时间要在以上标准时间上面加8小时。

反映在java的timemilli毫秒时是,

long china_ts=System.currentTimeMillier()+1000*60*60*8

但只在不支持Java SE时区的早期版本(比如Java Card,Java ME/MIDP1.0)才需要自己手工加。

现在的java系统本身有时区库,用Calendar/Date类,会自动调整时区。不需要再手动算。按以上加法会画蛇添足。

else{UTC=BJT}改成else{UTC=BJT}elseif(800<BJT<2359)改成elseif(800<BJT&&BJT<2359)if(0<BJT<800)改成if(0<BJT&&BJT<800)c语言中没有a<x<b这样的形式。要用&&或者||来进行连接

Calendar gc = GregorianCalendar.getInstance()

cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset))

//之后调用cal.get(int x)或cal.getTimeInMillis()方法所取得的时间即是UTC标准时间。

System.out.println("UTC:"+new Date(cal.getTimeInMillis()))

赠送其它时间方法,总有一款适合您

public static void main(String[] args) {

SimpleDateFormat foo = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")

System.out.println("foo:"+foo.format(new Date()))

Calendar gc = GregorianCalendar.getInstance()

System.out.println("gc.getTime():"+gc.getTime())

System.out.println("gc.getTimeInMillis():"+new Date(gc.getTimeInMillis()))

//当前系统默认时区的时间:

Calendar calendar=new GregorianCalendar()

System.out.print("时区:"+calendar.getTimeZone().getID()+" ")

System.out.println("时间:"+calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE))

//美国洛杉矶时区

TimeZone tz=TimeZone.getTimeZone("America/Los_Angeles")

//时区转换

calendar.setTimeZone(tz)

System.out.print("时区:"+calendar.getTimeZone().getID()+" ")

System.out.println("时间:"+calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE))

Date time=new Date()

//1、取得本地时间:

java.util.Calendar cal = java.util.Calendar.getInstance()

//2、取得时间偏移量:

int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET)

//3、取得夏令时差:

int dstOffset = cal.get(java.util.Calendar.DST_OFFSET)

//4、从本地时间里扣除这些差量,即可以取得UTC时间:

cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset))

//之后调用cal.get(int x)或cal.getTimeInMillis()方法所取得的时间即是UTC标准时间。

System.out.println("UTC:"+new Date(cal.getTimeInMillis()))

Calendar calendar1 = Calendar.getInstance()

TimeZone tztz = TimeZone.getTimeZone("GMT")

calendar1.setTimeZone(tztz)

System.out.println(calendar.getTime())

System.out.println(calendar.getTimeInMillis())

}

运算结果是Tue Oct 19 16:54:57 CST 2010 符合你的要求

只是以毫秒来算的