我试图用GMT解析一个表示日期的字符串,但它在我的PC(太平洋)上的时区中打印出来。当我运行下面的时,我得到下面的输出。关于如何让解析器解析并返回GMT日期有什么想法吗?如果您看下面,我正在使用format.settimezone(timezone.gettimezone(“GMT”))设置时区;但它并没有产生预期的结果。
以下代码的输出:
10月29日星期一05:57:00 PDT 2012
package javaapplication1;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.TimeZone;
public class JavaApplication1 {
public static void main(String[] args) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
format.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(format.parse("2012-10-29T12:57:00-0000"));
}
}
您正在格式化程序中使用format.settimezone(timezone.gettimezone(gmt“));
,它用于将字符串格式化为日期,即。
Date date = format.parse("2012-10-29T12:57:00-0000");
被解析为处理2012-10-29T12:57:00-0000
是GMT
值,但是您正在打印date
,它在打印中使用本地时间,因此您注意到了不同之处。
如果要在GMT
中打印日期,请使用:
String formattedDate = format.format(date);
并打印formatteddate
。这将是gmt
。
System.out.println(formattedDate);
问题内容: 如何将下面的日期字符串解析为一个Date对象? 引发异常… 问题答案: 模式是错误的。您有3个字母的天的缩写,因此必须为。您有3个字母的月份缩写,因此必须为。由于这些日和月的缩写对语言环境敏感,因此您也希望将语言环境明确指定为英语,否则它将使用平台默认语言环境,而语言环境本身可能不是英语。 这在这里打印 根据我的时区是正确的。 如果您不想使用代替,我也会重新考虑。阅读javadoc以获
问题内容: 我在解析具有以下格式的输入字符串中的日期时遇到问题: 引发异常: 我敢打赌它与GMT字符串有关。我想我已经有尝试过,,,和。有什么想法吗?输入是否是标准的有效输入格式? 问题答案: 问题是根据Java Timezone规范, 无效的GMT字符串。 解决方案 :操纵输入字符串的时区部分。==>
问题内容: 我正在一个读取文件并处理数据的项目中工作。例如,我在那里处理日期: 2012-01-10 23:13:26 2012年1月13日 我找到了Joda包,有点有趣,但是不知道它是否最简单。 我能够将第一个示例解析为DateTime对象(Joda)reg-ex和String操作。(例如:用’-‘代替空格,并将其传递给构造函数。 我想它起作用了,但是问题出在第二种格式上。我如何使用这样的输入来
问题内容: 我想将日期字符串解析为日期。我在寻找其他问题,但没有找到答案。 错误消息是java.text.ParseException:而且我不知道怎么了。 你能帮我吗。提前致谢。 编辑:好的。我将其翻译成英文,但是我仍然遇到同样的问题。我不想更改输入,因为它来自邮件数据库。还有其他想法吗? 我发现了问题。我是瞎子 来自数据库的St是,不是 谢谢。 问题答案: 在德语中,“欧洲中部时间”是“Mit
问题内容: 我的日期格式为“ yyyy-MM-dd’T’HH:mm:ss.sssZ”。例如,日期为“ 2018-07-17T09:59:51.312Z”。我正在使用下面的代码来解析Java中的String。 这给了我“无法解析的日期:”例外。谁能告诉我该怎么做? 问题答案: 您忘了在 那会做的工作
这就是问题所在: 我有一些带有旅行信息的. csv文件,日期显示为字符串(每一行代表一次旅行): “1-5月和10-12月的所有星期一。6-9月的所有日子” 我必须将字符串解析为日期,并为每次旅行将其保存到一个数组中。 问题是我不知道怎么做。甚至我的大学老师也告诉我,他们不知道如何做到这一点:S。我无法使用http://docs.oracle.com/javase/6/docs/api/java/