2016-03-02 42 views
1

目前,Java应用程序部署在多个国家/地区的站点位置。 某些操作的本地日期和时间将传递到应用程序 而不带时区。在java中将多个位置的本地dateTime转换为UTC

必须将每个本地时间戳转换为UTC。 如何获取localTimeZone(取决于应用程序的运行位置),选中此项并将所有日期转换为UTC。

+1

这个问题主题是将本地时间转换为utc和返回。可能是你需要的。 https://stackoverflow.com/questions/19375357/java-convert-gmt-utc-to-local-time-doesnt-work-as-expected – Akunosh

+0

谢谢Akunosh..the链接帮助 – Rehan

回答

0

请,做一些同样的,

TimeZone currentTimeZone = TimeZone.getDefault(); 

     DateFormat formatter = DateFormat.getDateTimeInstance(
       DateFormat.DEFAULT, 
       DateFormat.DEFAULT, 
       Locale.getDefault()); 
     formatter.setTimeZone(currentTimeZone); 

     Date myDate = new Date(); 
     System.out.println(formatter.format(myDate)); // you Local time 

     formatter.setTimeZone(TimeZone.getTimeZone("UTC")); 
     System.out.println(formatter.format(myDate)); // UTC time 
0

我找到here这个答案。你可以试试这个,简单又容易,并且可以将任何时区转换为任何区域

SimpleDateFormat formatter = new SimpleDateFormat("dd-M-yyyy hh:mm:ss a"); 

String dateInString = "22-01-2015 10:15:55 AM"; 
Date date = formatter.parse(dateInString); 
TimeZone tz = TimeZone.getDefault(); 

// From TimeZone Asia/Singapore 
System.out.println("TimeZone : " + tz.getID() + " - " + tz.getDisplayName()); 
System.out.println("TimeZone : " + tz); 
System.out.println("Date : " + formatter.format(date)); 

// To TimeZone America/New_York 
SimpleDateFormat sdfAmerica = new SimpleDateFormat("dd-M-yyyy hh:mm:ss a"); 
TimeZone tzInAmerica = TimeZone.getTimeZone("America/New_York"); 
sdfAmerica.setTimeZone(tzInAmerica); 

String sDateInAmerica = sdfAmerica.format(date); // Convert to String first 
Date dateInAmerica = formatter.parse(sDateInAmerica); 

System.out.println("\nTimeZone : " + tzInAmerica.getID() + 
            " - " + tzInAmerica.getDisplayName()); 
System.out.println("TimeZone : " + tzInAmerica); 
System.out.println("Date (String) : " + sDateInAmerica); 
System.out.println("Date (Object) : " + formatter.format(dateInAmerica)); 
相关问题