我有一个包含如此日期的字符串:
String startTime = "2014-10-11T17:00:41+0000"
我正在尝试重新格式化该字符串,以便它显示为:
Oct 11, 2014 5:00 PM
答案 0 :(得分:1)
使用SimpleDateFormat进行解析输入字符串并以新格式表示: http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
例:
SimpleDateFormat sdfmtIn = new SimpleDateFormat("dd/MM/yy");
SimpleDateFormat sdfmtOut= new SimpleDateFormat("dd-MMM-yyyy");
java.util.Date date = sdfmtIn.parse(strInput);
String strOutput = sdfmtOut.format(date);
答案 1 :(得分:1)
由于Date
个对象不保留时区信息,因此您需要专门设置原始日期到目标格式化程序的时区偏移量。以下是从一种格式转换为另一种格式的完整代码,同时保持时区偏移(在您的情况下为 +0000 )。有关TimeZone
类here的更多信息以及如何为您的需求here构建正确的日期和时间模式字符串。
try {
DateFormat originalFormat = new SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ssZ", Locale.ENGLISH);
DateFormat targetFormat = new SimpleDateFormat(
"MMM dd, yyyy K:mm a", Locale.ENGLISH);
targetFormat.setTimeZone(TimeZone.getTimeZone("GMT+0000"));
Date date = originalFormat.parse("2014-10-11T17:00:41+0000");
String formattedDate = targetFormat.format(date);
System.out.println(formattedDate);
} catch (ParseException e) {
e.printStackTrace();
}
输出:2014年10月11日下午5:00