[英]Convert date format from string
我有一个字符串,其中包含日期和时间,格式如下
“2020-09-20-08-40”
我尝试将该字符串转换为格式为“dd-MM-yyyy HH:mm”的日期并将其打印在 textview 中。我看到其他人尝试用这种方式转换
String dateString = "2020-09-20-08-40"
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
SimpleDateFormat format2 = new SimpleDateFormat("dd-MM-yyyy HH:mm");
Date date = format1.parse(dateString);
String dateFinal = format2.format(date);
t_date.setText(dateFinal);
当我尝试这种方式时,出现错误 java.lang.IllegalArgumentException
如何解决这个问题?
LocalDateTime.parse(
"2020-09-20-08-40" ,
DateTimeFormatter.ofPattern( "uuuu-MM-dd-HH-mm" )
)
2020-09-20T08:40
避免使用糟糕的遗留日期时间类。 仅使用java.time类。
定义格式模式以匹配您的输入。
DateTimeFormatter f = DateTimeFormatter.ofPattern( "uuuu-MM-dd-HH-mm" ) ;
解析您的输入文本。
LocalDateTime ldt = LocalDateTime.parse( input , f ) ;
提示:让您的数据发布者了解ISO 8601标准,以将日期时间值作为文本进行交换。 无需发明您的问题中看到的格式。 java.time类在解析/生成字符串时默认使用标准格式,因此无需指定格式模式。
感谢@Nima Khalili 和@Andre Artus 的回答,我可以解决这个问题。 我的代码看起来像这样
String dateString = "2020-09-20-08-40"
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd-HH-mm");
format1.setTimeZone(TimeZone.getTimeZone("GMT + 7"));
SimpleDateFormat format2 = new SimpleDateFormat("dd-MM-yyyy HH:mm");
Date date;
try {
date = format1.parse(dateString);
String dateFinal = format2.format(date);
t_date.setText(dateFinal);
} catch (ParseException e) {
e.printStackTrace();
}
如果你有一个像“2020-09-20-08-40”这样的日期+时间,那么你的格式应该反映出来,例如
“yyyy-MM-dd-HH-mm”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.