我有字符串
String ackwardDate="2012-10-30T19:14:58";
我需要转换为日期格式。然后尝试这样
ackwardDate=ackwardDate.replace("T", " ");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try {
Date date = formatter.parse(ackwardDate);
System.out.println(date);
System.out.println(formatter.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
它工作正常。还有其他方法吗?
答案 0 :(得分:2)
您可以在日期格式中加入T
。同时查看您的ackwardDate字符串,您需要使用HH
而不是hh
,因为它具有24小时格式,并由H
表示。
String ackwardDate="2012-10-30T19:14:58";
// ackwardDate=ackwardDate.replace("T", " "); // Not needed anymore
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
SimpleDateFormat文档可以帮助您了解有关可用模式的更多信息。
答案 1 :(得分:1)
您可以使用:
new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss")
并且不要替换字符&#39; <&#39;
答案 2 :(得分:1)
我认为您不希望T
显示您的结果日期和时间,因此只有您使用replace()
方法。将T
替换为space
只是一个简单而且很好的解决方案,如果您不想使用ackwardDate=ackwardDate.replace("T", " ")
而不是可以获取日期对象(Date date = formatter.parse(str)
),则可以尝试使用此方法对于yyyy-MM-ddTHH:mm:ss
和date
个对象,您可以单独yyyy-MM-dd
和HH:mm:ss
或hh:mma
获取date
。使用 String str = "2012-10-30T19:14:58";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
SimpleDateFormat formatterDate = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat formatterTime = new SimpleDateFormat("HH:mm:ss");
try {
Date date = formatter.parse(str);
System.out.println(date);
System.out.println("Complete Date: "+formatter.format(date));
System.out.println("Date: "+formatterDate.format(date));
System.out.println("Time: "+formatterTime.format(date));
System.out.println("Date And Time: "+formatterTime.format(date)+" "+formatterTime.format(date));
} catch (Exception e) {
e.printStackTrace();
}
对象作为您的要求。
{{1}}
答案 3 :(得分:1)
如果你知道你将拥有相同的日期字符串格式,那么继续使用SimpleDateFormat,否则最好分割字符串并使用GregorianCalendar创建
`String ackwardDate =&#34; 2012-10-30T19:14:58&#34 ;;
SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd'T'hh:mm:ss");
try {
Date dt=df.parse(ackwardDate);
System.out.println(dt);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}`