如何将此字符串转换为Java中的标准日期?
-
05-10-2019 - |
题
我之前发布了以下问题: 如何在Java中转换此日期?
但是现在我想知道如何将此字符串转换为日期/时间。
2010-03-15T16:34:46Z
例如:03/15/10
更新:
String pattern = "MM/dd/yy 'at' HH:mm";
Date date = new Date();
try {
date = new SimpleDateFormat(pattern).parse(q.getUpdated_at());
} catch (ParseException e) {
e.printStackTrace();
}
dateText.setText(new SimpleDateFormat("MM/dd/yy 'at' hh:mma").format(date));
给我一个结果,例如:
Mon Mar 15 16:34:50 MST 2010
我该如何格式化
03/15/10 at 4:34PM
?
解决方案
简而言之,您想转换一个日期 一个 细绳 格式 到日期 其他 细绳 格式. 。你有:
2010-03-15T16:34:46Z
你想要
03/15/10 at 4:34PM
您不想最终使用 java.util.Date
您最初在问题中暗示的对象。您也不想使用它 toString()
由于该返回固定格式,如 它的Javadoc.
Bozho的答案仍然适用。利用 java.text.SimpleDateFormat
. 。首先,你需要 解析 字符串格式的日期 Date
对象,以便您可以 格式 它回到另一种字符串格式。
// First parse string in pattern "yyyy-MM-dd'T'HH:mm:ss'Z'" to date object.
String dateString1 = "2010-03-15T16:34:46Z";
Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(dateString1);
// Then format date object to string in pattern "MM/dd/yy 'at' h:mma".
String dateString2 = new SimpleDateFormat("MM/dd/yy 'at' h:mma").format(date);
System.out.println(dateString2); // 03/15/10 at 4:34PM
其他提示
两个都 SimpleDateFormat
和 乔达时间 DateTimeFormat
可以使用此模式来解析此:
String pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'";
例如:
Date date = new SimpleDateFormat(pattern).parse(dateString);
和(Joda Time):
DateTimeFormatter dtf = DateTimeFormat.forPattern(pattern);
DateTime dateTime = dtf.parseDateTime(s);
更新
您有2种日期格式 - 一种 解析 输入,一个用于 格式化 输出。所以:
dateText.setText(new SimpleDateFormat("MM/dd/yy 'at' hh:mma").format(date));
(当然,为了优化,您可以实例化 SimpleDateFormat
只有一次,并重复使用)
如果要格式化输出字符串,请在代码中更改以下行
dateText.setText(date.toString());
至
dateText.setText(String.format("%1$tm/%1$td/%1$ty at %1$tl:%1$tM%1$Tp", date));
不隶属于 StackOverflow