从datestring中提取时间

如何格式化"2010-07-14 09:00:02"datestring来描述"9:00"

使用SimpleDateFormat在datestring和实际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 
 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

一个非常简单的方法就是直接使用Formatter (见date时间转换 )或者更多的String.format

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

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

通过使用SimpleDateFormatter

如果你有整数的date,你可以像这样使用:

 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); 

当问题被问到时,其他答案是很好的答案。 时间在继续, DateSimpleDateFormat被更新更好的类所替代,并停止使用。 在2017年,使用java.time包中的类:

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

结果是期望的, 9:00

 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)