从 2015 年 3 月 3 日 7:30:00 格林威治标准时间下午到 2015 年 8 月 6 日 18:53:50
From 03-Mar-15 7:30:00 PM GMT to 2015-08-06 18:53:50
使用 Java 1.5 或更早版本,将 2015 年 8 月 5 日 11:30 PM BST 中给出的时间转换为 2015-08-06 18:53:50Z 的最佳方法是什么。
我的代码如下:
String ts = "05-Aug-15 11:30 PM BST";
DateFormat df1 = new SimpleDateFormat("dd-MMM-yy HH:mm aa z");
Date myDate = df1.parse(ts);
String myd = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(myDate);
System.out.println(myd);
2015-08-05T11:30:00Z
这是从什么是 BST 到 UTC/Zulu 的正确方法吗?
另一个问题是原始时间是 12:00 AM/PM 但我想在 24 小时内使用。
这是我得到的:
05-Aug-15 10:30 PM BST New Date:2015-08-05T10:30:00Z
05-Aug-15 10:30 AM BST New Date:2015-08-05T10:30:00Z
您的第一个 DateFormat
包括 HH
,这意味着它也是 24 小时制。将其更改为
DateFormat df1 = new SimpleDateFormat("dd-MMM-yy hh:mm aa z");
我还建议您明确设置 TimeZone
(并创建 df2
)用于输出。像,
String ts = "05-Aug-15 11:30 PM BST";
DateFormat df1 = new SimpleDateFormat("dd-MMM-yy hh:mm aa z");
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
df2.setTimeZone(TimeZone.getTimeZone("UTC"));
Date myDate = df1.parse(ts);
System.out.println(df1.format(myDate)); // <-- this is how I saw it
String myd = df2.format(myDate);
System.out.println(myd);
输出
05-Aug-15 11:30 PM BST
2015-08-05T22:30:00Z
使用 Java 1.5 或更早版本,将 2015 年 8 月 5 日 11:30 PM BST 中给出的时间转换为 2015-08-06 18:53:50Z 的最佳方法是什么。
我的代码如下:
String ts = "05-Aug-15 11:30 PM BST";
DateFormat df1 = new SimpleDateFormat("dd-MMM-yy HH:mm aa z");
Date myDate = df1.parse(ts);
String myd = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(myDate);
System.out.println(myd);
2015-08-05T11:30:00Z
这是从什么是 BST 到 UTC/Zulu 的正确方法吗?
另一个问题是原始时间是 12:00 AM/PM 但我想在 24 小时内使用。 这是我得到的:
05-Aug-15 10:30 PM BST New Date:2015-08-05T10:30:00Z
05-Aug-15 10:30 AM BST New Date:2015-08-05T10:30:00Z
您的第一个 DateFormat
包括 HH
,这意味着它也是 24 小时制。将其更改为
DateFormat df1 = new SimpleDateFormat("dd-MMM-yy hh:mm aa z");
我还建议您明确设置 TimeZone
(并创建 df2
)用于输出。像,
String ts = "05-Aug-15 11:30 PM BST";
DateFormat df1 = new SimpleDateFormat("dd-MMM-yy hh:mm aa z");
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
df2.setTimeZone(TimeZone.getTimeZone("UTC"));
Date myDate = df1.parse(ts);
System.out.println(df1.format(myDate)); // <-- this is how I saw it
String myd = df2.format(myDate);
System.out.println(myd);
输出
05-Aug-15 11:30 PM BST
2015-08-05T22:30:00Z