从日期字符串中提取时间

时间:2010-08-17 17:04:28

标签: java string date time

如何将"2010-07-14 09:00:02"日期字符串格式化为仅显示"9:00"

8 个答案:

答案 0 :(得分:112)

使用SimpleDateFormat在日期字符串和真实Date对象之间进行转换。以Date为起点,您可以根据SimpleDateFormat的javadoc中定义的各种模式轻松应用格式(单击Javadoc的蓝色代码链接)。

这是一个启动示例:

String originalString = "2010-07-14 09:00:02";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(originalString);
String newString = new SimpleDateFormat("H:mm").format(date); // 9:00

答案 1 :(得分:13)

Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2010-07-14 09:00:02");
String time = new SimpleDateFormat("H:mm").format(date);

http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

答案 2 :(得分:11)

一种非常简单的方法是直接使用Formatter(请参阅date time conversions)或更多String.format,如

String.format("%tR", new Date())

答案 3 :(得分:4)

我假设您的第一个字符串是一个实际的Date对象,如果我错了请纠正我。如果是这样,请使用SimpleDateFormat对象:http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html。格式字符串“h:mm”应该处理它。

答案 4 :(得分:4)

答案 5 :(得分:3)

如果你有整数的日期,你可以像这里一样使用:

Date date = new Date();
date.setYear(2010);
date.setMonth(07);
date.setDate(14)
date.setHours(9);
date.setMinutes(0);
date.setSeconds(0);
String time = new SimpleDateFormat("HH:mm:ss").format(date);

答案 6 :(得分:3)

当问到这个问题时,其他答案都是很好的答案。时间继续,DateSimpleDateFormat被更新更好的类取代而不再使用。 2017年,请使用java.time包中的类:

    String timeString = LocalDateTime.parse(dateString, DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
            .format(DateTimeFormatter.ofPattern("H:mm"));

结果是所需的9:00

答案 7 :(得分:0)

let datestring = "2017-02-14 02:16:28"

let formatter = DateFormatter()
formatter.dateStyle = DateFormatter.Style.full
formatter.timeStyle = DateFormatter.Style.full

formatter.dateFormat = "yyyy-MM-dd hh:mm:ss"

let date = formatter.date(from: datestring)
let date2 = formatter.String(from: date)