Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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.text.ParseException:不可解析的日期异常_Java - Fatal编程技术网

java.text.ParseException:不可解析的日期异常

java.text.ParseException:不可解析的日期异常,java,Java,如果我对日期对象执行toString,我将得到如下输出 2016-04-13 22:00:01.0 我正在执行以下操作以再次将对象转换为数据 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd:HH:mm:SS"); Date convertedDate = (Date) formatter.parse(timestamp.toString()); 但是获取ParseException 我正在尝试将输出作为日期对象,如下

如果我对
日期
对象执行
toString
,我将得到如下输出

2016-04-13 22:00:01.0
我正在执行以下操作以再次将对象转换为数据

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd:HH:mm:SS");
Date convertedDate = (Date) formatter.parse(timestamp.toString());
但是获取
ParseException

我正在尝试将输出作为日期对象,如下所示
2016-04-13 22:00:01

此测试应涵盖您的示例:

首先是评论:

    SimpleDateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss zzz yyyy");
    Date convertedDate = formatter.parse("Thu Apr 14 15:24:14 CEST 2016")
    System.out.print(convertedDate);
第二个问题:

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    Date convertedDate = formatter.parse("2016-04-13 22:00:01.0");
    System.out.print(convertedDate);
这完全取决于您正在接收的输入字符串

您不应该使用Date::toString方法,而应该使用formatter,因为您将不会对区域和格式有任何问题。最好对数据进行全流程控制

现在,如果您想将其转换为“2016-04-13 22:00:01”格式,只需使用:

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String formatedDate = formatter.format(convertedDate);

此测试应涵盖您的示例:

首先是评论:

    SimpleDateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss zzz yyyy");
    Date convertedDate = formatter.parse("Thu Apr 14 15:24:14 CEST 2016")
    System.out.print(convertedDate);
第二个问题:

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    Date convertedDate = formatter.parse("2016-04-13 22:00:01.0");
    System.out.print(convertedDate);
这完全取决于您正在接收的输入字符串

您不应该使用Date::toString方法,而应该使用formatter,因为您将不会对区域和格式有任何问题。最好对数据进行全流程控制

现在,如果您想将其转换为“2016-04-13 22:00:01”格式,只需使用:

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String formatedDate = formatter.format(convertedDate);
应该是

yyyy-MM-dd HH:mm:ss.S
应该是

yyyy-MM-dd HH:mm:ss.S

将具有特定日期格式的字符串解析为日期对象:

    String dateString = "2016-04-13 22:00:01.0";
SimpleDateFormat formatterFullMilliseconds = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss.SSS" );

Date dateFromDateString = formatterFullMilliseconds.parse( dateString );

System.out.println( dateFromDateString ); // Output: Wed Apr 13 22:00:01 CEST 2016
将java.util.Date对象解析为所需的字符串表示形式:

SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
System.out.println( formatter.format( dateFromDateString ) ); // 2016-04-13 22:00:01
System.out.println( formatter.format( new Date() ) ); // 2016-04-14 15:29:04

将具有特定日期格式的字符串解析为日期对象:

    String dateString = "2016-04-13 22:00:01.0";
SimpleDateFormat formatterFullMilliseconds = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss.SSS" );

Date dateFromDateString = formatterFullMilliseconds.parse( dateString );

System.out.println( dateFromDateString ); // Output: Wed Apr 13 22:00:01 CEST 2016
将java.util.Date对象解析为所需的字符串表示形式:

SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
System.out.println( formatter.format( dateFromDateString ) ); // 2016-04-13 22:00:01
System.out.println( formatter.format( new Date() ) ); // 2016-04-14 15:29:04

这正是您需要做的,以转义java.text.ParseException:不可解析的日期异常

Date date = new Date();

SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dt = sp.parse(sp.format(date));
System.out.println(dt.toString());

这正是您需要做的,以转义java.text.ParseException:不可解析的日期异常

Date date = new Date();

SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dt = sp.parse(sp.format(date));
System.out.println(dt.toString());


由于
formatter.parse(…)
已返回一个
Date
对象,因此对
Date
的强制转换是不必要的。投票以键入错误的形式关闭。如果我删除强制转换,仍然会出现解析错误,请帮助对
Date
的强制转换是不必要的,因为
formatter.parse(…)
已返回一个
日期
对象。投票以键入错误的形式关闭。如果我删除了强制转换,我仍然会收到解析错误,请帮助。感谢您解决了异常问题,但我只需要2016-04-13 22:00:01格式的输出,而不是2016-04-13 22:00:01.9抱歉,它不起作用。日期重新运行为4月14日星期四00:39:57 IST 2016解决异常问题的感谢信,但我只需要以2016-04-13 22:00:01的格式输出,而不是2016-04-13 22:00:01.9。很抱歉,它不起作用。日期改为2016年4月14日星期四00:39:57。上述内容不起作用。日期重新运行为2016年4月14日星期四00:39:57此代码SimpleDataFormat格式化程序=新SimpleDataFormat(“yyy-MM-dd HH:MM:ss.SSS”);日期转换日期=格式化程序.parse(“2016-04-13 22:00:01.0”);仅返回以下格式Wed Apr 13 22:00:01 IST 2016。但我的愿望输出是不同的系统。输出。打印(转换日期)@马格什·巴拉苏布拉曼尼亚姆完成了。但我建议使用相同的格式化程序来转换字符串。这样你就不必使用多个。上述方法不起作用。日期重新运行为2016年4月14日星期四00:39:57此代码SimpleDataFormat格式化程序=新SimpleDataFormat(“yyy-MM-dd HH:MM:ss.SSS”);日期转换日期=格式化程序.parse(“2016-04-13 22:00:01.0”);仅返回以下格式Wed Apr 13 22:00:01 IST 2016。但我的愿望输出是不同的系统。输出。打印(转换日期)@马格什·巴拉苏布拉曼尼亚姆完成了。但我建议使用相同的格式化程序来转换字符串。因此,您不必使用多个。如果我使用datObject,我就有一个date对象。toString()我得到了所需的输出,但尝试传递值的函数只接受date对象。因此,如果我使用datObject.toString()我将获得所需的输出,但尝试传递该值的函数只接受date对象,那么您的解决方案可能不适用于date对象。因此,您的解决方案可能对我不起作用