Java 将GMT时间转换为特定字符串格式
我有一个特殊的例子,我必须把日期字段转换成GMT时间,然后再转换成特定的字符串格式 这给了格林尼治标准时间:Java 将GMT时间转换为特定字符串格式,java,date,datetime,gmt,Java,Date,Datetime,Gmt,我有一个特殊的例子,我必须把日期字段转换成GMT时间,然后再转换成特定的字符串格式 这给了格林尼治标准时间: public static void main(String[] args) { Date rightNow = Calendar.getInstance().getTime(); DateFormat gmtFormat = new SimpleDateFormat(); TimeZone gmtTime = TimeZone.getTimeZo
public static void main(String[] args) {
Date rightNow = Calendar.getInstance().getTime();
DateFormat gmtFormat = new SimpleDateFormat();
TimeZone gmtTime = TimeZone.getTimeZone("GMT");
gmtFormat.setTimeZone(gmtTime);
System.out.println("GMT Time: " + gmtFormat.format(rightNow));
String gmtDate=gmtFormat.format(rightNow);
}
现在我需要将GMT时间转换为字符串格式yyyy-MM-ddTHH:MM:ssZ
示例我所在时区的当前时间为17:10:00
,以GMT15:10:00
为单位,因此这意味着最终输出应为2017-08-07T15:10:00Z
我尝试使用此代码添加:
String pattern = "yyyy-MM-ddTHH:mm:ssZ";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String date = simpleDateFormat.format(gmtDate);
System.out.println(date);
但我当然会遇到异常,因为字符串不能像这样转换,但我需要类似的东西。将两个代码块合并在一起:
public static void main(String[] args) {
Date rightNow = Calendar.getInstance().getTime();
String pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
DateFormat gmtFormat = new SimpleDateFormat(pattern);
TimeZone gmtTime = TimeZone.getTimeZone("GMT");
gmtFormat.setTimeZone(gmtTime);
System.out.println("GMT Time: " + gmtFormat.format(rightNow));
}
或者
“yyyy-MM-dd'T'HH:MM:ss.SSSXXX”
根据…您必须使用旧的日期/时间API吗?time包非常非常好。除此之外,还不清楚您得到了什么异常或在哪里……嗨,我在这一行得到了异常:SimpleDateFormat SimpleDateFormat=newsimpledateformat(模式);线程“main”java.lang.IllegalArgumentException中的此异常:java.text.SimpleDataFormat.compile(未知源代码)处的非法模式字符“T”位于java.text.SimpleDataFormat.initialize(未知源代码)处,对吗?您对此进行了调查吗?基本上,您的模式被破坏了-您需要引用T
和Z
。副本中完整的工作示例所示的正确模式是公共静态最终字符串ISO_8601_24H_FULL_FORMAT=“yyyy-MM-dd'T'HH:MM:ss.SSSXXX”代码>根据。不要像其他人建议的那样在末尾硬编码Z
。这不起作用:线程“main”java.lang.IllegalArgumentException中的异常:java.text.simpleDataFormat.compile中的非法模式字符“T”位于java.text.simpleDataFormat.initialize(未知源代码)位于java.text.simpleDataFormat.(未知源代码)在java.text.SimpleDataFormat.(未知源代码)的ibis.test.EricssonDate.main(EricssonDate.java:34)中,这与我在代码中得到的异常情况完全相同。老实说,我只是复制了您的原始模式,看起来它没有工作。由@RobinTopper更正…不,他们的编辑也不正确