Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Java 迄今为止的字符串格式不正确_Java_Date - Fatal编程技术网

Java 迄今为止的字符串格式不正确

Java 迄今为止的字符串格式不正确,java,date,Java,Date,我试图用Java做一个简单的字符串到日期的转换。我正在从一些日志中略过日期,需要将其转换为日期以进行一些处理。即将到来的日期如下所示: 2012-09-07 19:53:33 String taskStart = "2012-09-07 19:53:33"; String dateFormat = "yyyy-MM-dd hh:MM:ss"; SimpleDateFormat dateFormat=new SimpleDateFormat(format); Date taskStartDa

我试图用Java做一个简单的字符串到日期的转换。我正在从一些日志中略过日期,需要将其转换为日期以进行一些处理。即将到来的日期如下所示:

2012-09-07 19:53:33
String taskStart = "2012-09-07 19:53:33";  
String dateFormat = "yyyy-MM-dd hh:MM:ss";
SimpleDateFormat dateFormat=new SimpleDateFormat(format);
Date taskStartDate = dateFormat.parse(taskStart); 
在我的代码中,当我试图将其转换为日期对象时,我得到了一个完全不同的日期。我的代码如下所示:

2012-09-07 19:53:33
String taskStart = "2012-09-07 19:53:33";  
String dateFormat = "yyyy-MM-dd hh:MM:ss";
SimpleDateFormat dateFormat=new SimpleDateFormat(format);
Date taskStartDate = dateFormat.parse(taskStart); 
我得到的输出是:

Sat May 07 19:00:27 PDT 2016

我如何简单地将原始日期转换为正确的格式???

根据文档,您应该使用大写字母“H”表示格式为0-23的小时数。此外,分钟由小写字母“m”表示

  • 您已经指定了两次
    MM
    (一年中的一个月)。表示“分钟”的m必须是小写
  • 如果您使用的是基于24小时的时间,则需要指定
    HH
    ,以捕获在
    0-23
    范围内指定的小时数,而
    HH
    则需要AM/PM小时数(在
    1-12
    范围内的小时数,并使用AM/PM说明符作为时间字符串的一部分)
  • 最后,示例代码没有定义要传递到
    simpleDataFormat
    对象的构造函数中的
    format
    变量。事实上,您使用了变量名
    dateFormat
    两次,并且根本没有定义
    format
    变量-至少没有根据问题中包含的代码进行定义
  • 所以,我认为,您的正确格式字符串应该是

    "yyyy-MM-dd HH:mm:ss"
    
    …完整、适当的代码示例如下:

    String taskStart = "2012-09-07 19:53:33";  
    String format = "yyyy-MM-dd HH:mm:ss";
    SimpleDateFormat dateFormat=new SimpleDateFormat(format);
    Date taskStartDate = dateFormat.parse(taskStart); 
    

    尝试将dateFormat定义更改为:

    String dateFormat = "yyyy-MM-dd HH:mm:ss"; 
    
    请注意,在您的时间中,HH应大写表示0-23,mm应小写表示分钟。

    “yyyy-mm-dd HH:mm:ss”

    MM
    MM
    分别代表月份和分钟….

    所以它应该是

    "yyyy-MM-dd HH:mm:ss"
    

    “yyyy-MM-dd hh:MM:ss”

    我认为您应该使用日期
    格式设置程序再次将日期输出转换为
    字符串
    格式。格式
    功能:

    Date formatter=new SimpleDateFormatter("yy-MM-dd HH mm ss")
    
    String s=formatter.format(taskStartDate)
    

    我想有个打字错误,你是说
    String format=…