Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从toString()解析java日期回溯_Java_Parsing_Date - Fatal编程技术网

从toString()解析java日期回溯

从toString()解析java日期回溯,java,parsing,date,Java,Parsing,Date,我有一个字符串,其中包含对java.util.Date实例调用的toString()的结果。如何将此值解析回Date对象 Java文档称toString()将此Date对象转换为字符串,格式如下: dow mon dd hh:mm:ss zzz yyyy 但是当然没有像“dow”或“mon”这样的格式标签 有人能帮我解决这个问题吗。请注意,不幸的是,toString()调用位于我无法控制的一段代码中。如果您无法控制生成字符串的代码: 要分析toString()格式,需要将SimpleDate

我有一个
字符串
,其中包含对
java.util.Date
实例调用的
toString()
的结果。如何将此值解析回
Date
对象

Java文档称
toString()
将此
Date
对象转换为
字符串
,格式如下:

 dow mon dd hh:mm:ss zzz yyyy
但是当然没有像
“dow”
“mon”
这样的格式标签


有人能帮我解决这个问题吗。请注意,不幸的是,
toString()
调用位于我无法控制的一段代码中。

如果您无法控制生成字符串的代码:

要分析
toString()
格式,需要将
SimpleDateFormat
区域设置为英语,并使用以下格式:
“EEE-MMM-dd-HH:mm:ss-Z-yyyy”


使用SimpleDataFormat。请在此处找到该选项:

支持您获得“dateString”字符串


首先看一下java提供的所有日期格式。 您可以使用
SimpleDataFormat
类来执行您想要的操作

 public class DateFormatTest 
    { 
      public DateFormatTest() 
      { 
        String dateString = // in "dow mon dd hh:mm:ss zzz yyyy" format

        SimpleDateFormat dateFormat = new SimpleDateFormat("dow mon dd hh:mm:ss zzz yyyy"); 
        Date convertedDate = dateFormat.parse(dateString); 

        System.out.println("Converted string to date : " + convertedDate); 
      } 

      public static void main(String[] argv) 
      { 
        new DateFormatTest(); 
      } 
    } 
  }

我没有进行测试,但类似的方法可能会奏效:

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM HH:mm:ss z yyyy");
Date date = sdf.parse(dateStr);
如果没有,请尝试使用文档进行更正: ()

您可以在java中参考此示例。它有所有的日期格式

此外,对于日期格式及其功能的深入分析,您可以参考下面的链接


Mm..正如我所说,我无法控制toString(),因为它是由Struts制作的。不管怎样,设置EN语言环境就可以了,谢谢。我只需要注意,正确的格式字符串是“EEE-MMM-dd-HH:mm:ss-zzz-yyy”,您已经忘记了月份。我编辑了答案以获得它。:)这不起作用,并导致引发异常。正确的构造函数调用是:
SimpleDateFormat sdf=newsimpledateformat(“EEE-MMM-dd-HH:mm:ss-Z-yyyy”,new-Locale(“us”)“dow”和“mon”不是有效的格式规范
 public class DateFormatTest 
    { 
      public DateFormatTest() 
      { 
        String dateString = // in "dow mon dd hh:mm:ss zzz yyyy" format

        SimpleDateFormat dateFormat = new SimpleDateFormat("dow mon dd hh:mm:ss zzz yyyy"); 
        Date convertedDate = dateFormat.parse(dateString); 

        System.out.println("Converted string to date : " + convertedDate); 
      } 

      public static void main(String[] argv) 
      { 
        new DateFormatTest(); 
      } 
    } 
  }
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM HH:mm:ss z yyyy");
Date date = sdf.parse(dateStr);