如何格式化"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. 從json日期字符串中提取日期到字符串
- 5. 使用JavaScript從字符串中提取日期和時間
- 6. 從bash中的字符串中提取日期和時間
- 7. 從字符串中提取複雜的日期/時間格式
- 8. Javascript獲取日期()對象從字符串時間和日期
- 9. 從字符串提取日期(URL)
- 10. 從字符串中提取日期
- 11. 從SQL提取日期字符串
- 12. 從字符串提取日期
- 13. 從字符串中提取日期
- 14. SQL:從字符串提取日期
- 15. 從字符串中提取日期值
- 16. 從字符串中提取日期+ PHP
- 17. 從大字符串提取日期
- 18. 從日期/時間字符串獲取時間
- 19. 字符串日期時間
- 20. 從日期和時間提取日期
- 21. 從日期字符串顯示時間
- 22. 從字符串解析日期/時間?
- 23. 如何在Coldfusion中從日期+時間字符串中提取日期子字符串?
- 24. 日期時間字符串提升::格里高利::日期
- 25. 操縱字符串以提取日期時間
- 26. 從字符串獲取時間,從今天起的日期
- 27. django在日期時間的日期排序/從日期時間提取日期
- 28. C#從字符串\\日期(1433969291760)解析日期時間\/
- 29. 從日期時間字符串轉換爲JavaScript日期對象
- 30. javascript日期/時間字符串轉換爲SQL日期時間
嗨它也可以格式化它在幾個小時:分鐘,如果我有一個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