我试图将字符串格式化为日期。
为此我写了一段代码: -
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
System.out.println(sdf.format( cal.getTime() ));
这很好.. 但现在我想将一个字符串转换为如上格式化的日期.. 例如
String dt="2010-10-22";
输出应该是这样的: - 2010-10-22T00:00:00
我该怎么做?
答案 0 :(得分:5)
String dt = "2010-10-22";
SimpleDateFormat sdfIn = new SimpleDateFormat("yyyy-MM-dd");
ParsePosition ps = new ParsePosition(0)
Date date = sdfIn.parse(dt, pos)
SimpleDateFormat sdfOut = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
System.out.println(sdfOut.format( date ));
答案 1 :(得分:2)
这应该为你做,记得把它包装在try-catch块中以防万一。
DateFormat dt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
try
{
Date today = dt.parse("2010-10-22T00:00:00");
System.out.println("Your Date = " + dt.format(today));
} catch (ParseException e)
{
//This parse operation may not be successful, in which case you should handle the ParseException that gets thrown.
//Black Magic Goes Here
}
答案 2 :(得分:1)
如果您的输入将是ISO,您还可以查看使用Joda Time API,如下所示:
LocalDateTime localDateTime = new LocalDateTime("2010-10-22");
System.out.println("Formatted time: " + localDateTime.toString());
答案 3 :(得分:0)
您用于输出日期格式的同一个类也可用于解析输入日期。
要使用您的示例,要解析样本日期:
String dt = "2010-10-22";
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(dateFormatter.parse(dt));
未指定的字段(即小时,分钟等)将为0.因此,您可以使用相同的代码格式化输出日期。
答案 4 :(得分:0)
包含从一种格式到另一种格式的字符串Date对象的转换