当前位置: 首页 > 面试题库 >

使用SimpleDateFormat将GMT时区的字符串解析为Date

宋航
2023-03-14
问题内容

我在解析具有以下格式的输入字符串中的日期时遇到问题:

String input = "Fri Jul 15 12:00:00 GMT+300 2011";
String dateFormat  = "EEE MMM d HH:mm:ss z yyyy";
Date date = new SimpleDateFormat(dateFormat).parse(input);

引发异常

java.text.ParseException: Unparseable date: "Fri Jul 15 12:00:00 GMT+300 2011"
    at java.text.DateFormat.parse(DateFormat.java:337)

我敢打赌它与GMT字符串有关。我想我已经有尝试过zzzzzZ,和zzzZ。有什么想法吗?输入是否是GMT+300标准的有效输入格式?


问题答案:

问题是GMT+300根据Java
Timezone规范,
无效的GMT字符串。

解决方案 :操纵输入字符串的时区部分。GMT+300==>GMT+3:00



 类似资料:
  • 我试图用GMT解析一个表示日期的字符串,但它在我的PC(太平洋)上的时区中打印出来。当我运行下面的时,我得到下面的输出。关于如何让解析器解析并返回GMT日期有什么想法吗?如果您看下面,我正在使用format.settimezone(timezone.gettimezone(“GMT”))设置时区;但它并没有产生预期的结果。 以下代码的输出: 10月29日星期一05:57:00 PDT 2012

  • 下面是SimpleDateFormat的设置。 下面是开发人员文档中可解析日期字符串的可能差异列表。正如您所看到的,它们中没有一个在时区中有冒号。 我的第二个问题是当我得到一个时区设置为Z的日期字符串时,这是将时区设置为GMT的标准,相当于0000。然而,我又得到了一个ParseException。下面是日期字符串的一个示例。 提前致谢

  • 问题内容: 将日期转换为其他格式的字符串时遇到问题。日期: 我想将此格式转换为另一种格式:。 当我尝试将其转换时,使用以下方法会得到不同的结果: 我得到了错误的结果,该月已替换为分钟: 问题答案: 这是错误的。这应该是。有关将日期从一种格式转换为另一种格式的更多详细信息,请参见此http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDat

  • 我在将日期转换为不同格式的字符串时遇到了问题。日期: 我想将此格式转换为另一种格式:。 当我尝试转换它时,我会得到不同的结果: 我得到了一个错误的结果,月被替换成了分钟:

  • 问题内容: 我遇到了将“星期几”字符串转换为值的问题。我找不到包中内置的任何内容。 然后,我编写了这个简单的函数(满足了我的需求): 还有其他 建议 或 更惯用的 方式在Golang中执行此转换吗? 谢谢! 问题答案: 前言: 我在中发布了此实用程序,请参见。 是的,使用映射而不是数组,因此查找更快,更简单: 测试它: 输出(在Go Playgorund上尝试): 小费: 您甚至可以使用循环来安全

  • 问题内容: 我有一个将存储Number对象的列表。该列表将通过分析字符串列表来填充,其中每个字符串都可以表示Number的任何子类。 如何将字符串解析为通用数字,而不是特定的整数或浮点数? 问题答案: 数字不能实例化,因为它是抽象类。我建议传入数字,但是如果您设置为字符串,则可以使用任何子类来解析它们, 要么 @请参阅NumberFormat