繁体   English   中英

在Java中将多个位置的本地dateTime转换为UTC

[英]Convert local dateTime at multiple locations to UTC in java

当前,Java应用程序已部署在站点位置的多个国家/地区。 一些操作的本地日期和时间不带时区传递给应用程序。

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

请做同样的事情,

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

我从这里找到这个答案。 您可以尝试轻松简单地进行此操作,并且可以将任何时区转换为任何时区

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));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM