如何格式化"2010-07-14 09:00:02"
日期字符串以描述"9:00"
?从日期提取时间字符串
回答
使用SimpleDateFormat
在日期字符串和实际对象之间进行转换。以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对象,请纠正我,如果我错了。如果是这样,请使用SimpleDateFormat对象:http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html。格式字符串“h:mm”应该照顾它。
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 time conversions)或更直接地String.format
在
String.format("%tR", new 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);
请解释您的答案,以使其他读者更清楚。 – 2015-06-23 13:03:05
我已经更新了它 – 2015-06-23 16:10:31
如果您因为某种原因而喜欢八月,可能会使用07,但请注意08或09在九月或十月不适用。 0前缀表示数字是八进制数。 – 2017-05-03 19:57:09
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)
。 – 2017-05-04 05:33:08
其他答案是问这个问题时的好答案。时间继续,Date
和SimpleDateFormat
被更新的更好的类取代,并停用。在2017年,使用的类中java.time
包:
String timeString = LocalDateTime.parse(dateString, DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
.format(DateTimeFormatter.ofPattern("H:mm"));
结果是所期望的,9:00
。
- 1. 获取日期时间从字符串
- 2. 从字符串获取日期时间
- 3. 从日期字符串获取时间
- 4. 使用JavaScript从字符串中提取日期和时间
- 5. 从bash中的字符串中提取日期和时间
- 6. Javascript获取日期()对象从字符串时间和日期
- 7. 从字符串中提取日期值
- 8. 从字符串提取日期(URL)
- 9. SQL:从字符串提取日期
- 10. 从字符串提取日期
- 11. 从字符串中提取日期
- 12. 从大字符串提取日期
- 13. 字符串日期时间
- 14. 从字符串解析日期/时间?
- 15. 日期时间字符串提升::格里高利::日期
- 16. 从字符串获取时间,从今天起的日期
- 17. django在日期时间的日期排序/从日期时间提取日期
- 18. 从日期时间字符串转换为JavaScript日期对象
- 19. 将日期时间字符串转换为日期时间
- 20. 转换日期/时间字符串值到.NET日期时间
- 21. 当日期值后面有额外值时从字符串中提取日期
- 22. 从字符串日期时间获取UTC格式
- 23. 从字符串中获取日期和时间
- 24. 如何从字符串'01/25/1955'获取日期时间?
- 25. 获取语法错误从日期时间字符串变换
- 26. 从Python中的字符串中提取日期时间的最佳方法
- 27. 如何从字符串列表中提取日期/时间参数?
- 28. 从一个字符串中提取两个合并的日期和时间
- 29. TSQL - 当从字符串转换日期和/或时间时,从字符串
- 30. 从“mm/yyyy”格式获取日期时间对象日期字符串
嗨它也可以格式化它在几个小时:分钟,如果我有一个unixtimestamp如:1279080000? 我尝试了以前的帖子,但没有帮助。 谢谢 – JJunior 2010-08-17 17:20:55
你可以用毫秒来构造一个带有时间戳的新Date对象,然后对它进行格式化。如果你实际上是从数据库中获取数据,你应该使用ResultSet#getTimestamp()来得到一个'Date',如[你之前的问题之一]中回答的那样(http://stackoverflow.com/questions/3473421/) 。或者甚至更好,利用SQL内置的日期/时间函数来返回已经使用所需格式的时间戳,从而不需要在Java中重新编写每行数据的昂贵任务。在这种情况下,只需通过ResultSet#getString()'获得小时。使用正确的工具进行作业 – BalusC 2010-08-17 17:22:40
我从数据库中获取它。 但需要生成打印报告。我以为我可以迭代这些值并在运行中改变它们。 因为我需要在最后打印出来。无法以任何starightforward方式完成:( – JJunior 2010-08-17 18:38:36