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对象。因此,您的解决方案可能对我不起作用