我从我们的网络服务获取上述日期格式。我对如何格式化日期有一个想法,我只是遇到了它作为字符串出现的问题。
我已经尝试this但我需要将其作为字符串返回,这在某种程度上不是问题。
这是我尝试的但它引发了一个异常:
java.text.ParseException:无法解析的日期: " 2016-02-26T00:00:00 + 02:00" (在偏移4处)
代码:
public static String formatDate(String unFormattedTime) {
String formattedTime;
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd MMM HH:mm");
Date date = sdf.parse(unFormattedTime);
formattedTime = sdf.format(date);
return formattedTime;
} catch (ParseException e) {
e.printStackTrace();
}
return "";
}
我怎么能用像dd MMM HH:mm?
这样的格式来格式化它答案 0 :(得分:4)
这里有一个你想要实现的工作片段:
public class FormatDateExample {
public static void main(String[] args) {
String date = "2016-02-26T00:00:00+02:00";
System.out.println(formatDate(date));
}
public static String formatDate(String unFormattedTime) {
String formattedTime;
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date date = sdf.parse(unFormattedTime);
sdf = new SimpleDateFormat("dd MMM HH:mm");
formattedTime = sdf.format(date);
return formattedTime;
} catch (ParseException e) {
e.printStackTrace();
}
return "";
}
}
首先,您必须使用给定的格式解析日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date date = sdf.parse(unFormattedTime);
然后您必须将该日期格式化为所需格式“dd MMM HH:mm”
sdf = new SimpleDateFormat("dd MMM HH:mm");
formattedTime = sdf.format(date);
答案 1 :(得分:0)
如果您使用的是Java 8,可以试试这个:
LocalDate parsedDate = LocalDate.parse(unFormattedTime,ISO_OFFSET_DATE_TIME)
价: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html