如何从日期时间字符串中拆分日期和时间?
我有一个像.我想将该字符串拆分为单独的变量,例如8/29/2011 11:16:12 AM
date = 8/29/2011
time = 11:16:12 AM
这可能吗?如果是这样,我该怎么做?
我有一个像.我想将该字符串拆分为单独的变量,例如8/29/2011 11:16:12 AM
date = 8/29/2011
time = 11:16:12 AM
这可能吗?如果是这样,我该怎么做?
(编辑:请参阅下面的Ole V.V.的答案,了解第一个版本的更现代(Java 8)方法)
一种方法是将其解析为日期对象,然后再次重新格式化:
try {
DateFormat f = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
Date d = f.parse("8/29/2011 11:16:12 AM");
DateFormat date = new SimpleDateFormat("MM/dd/yyyy");
DateFormat time = new SimpleDateFormat("hh:mm:ss a");
System.out.println("Date: " + date.format(d));
System.out.println("Time: " + time.format(d));
} catch (ParseException e) {
e.printStackTrace();
}
如果您只想将其切片为日期时间片段,只需使用 split 即可获取片段
String date = "8/29/2011 11:16:12 AM";
String[] parts = date.split(" ");
System.out.println("Date: " + parts[0]);
System.out.println("Time: " + parts[1] + " " + parts[2]);
或
String date = "8/29/2011 11:16:12 AM";
System.out.println("Date: " + date.substring(0, date.indexOf(' ')));
System.out.println("Time: " + date.substring(date.indexOf(' ') + 1));
为什么不使用日期格式?
检查 http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html
String str = "8/29/2011 11:16:12 AM";
String fmt = "MM/dd/yyyy HH:mm:ss a";
DateFormat df = new SimpleDateFormat(fmt);
Date dt = df.parse(str);
DateFormat tdf = new SimpleDateFormat("HH:mm:ss a");
DateFormat dfmt = new SimpleDateFormat("MM/dd/yyyy");
String timeOnly = tdf.format(dt);
String dateOnly = dfmt.format(dt);
它提供了更多的工作/代码,但这是正确的方法。