回答
執行此操作的正確方法是將其解析爲一個Date
對象,並按照需要的方式格式化此日期對象。
DateFormat inputDF = new SimpleDateFormat("EEE, d MMM yyyy H:m:s z");
DateFormat outputDF = new SimpleDateFormat("d MMM yyyy");
String input = "Mon, 14 May 2012 13:56:38 GMT";
Date date = inputDF.parse(input);
String output = outputDF.format(date);
System.out.println(output);
輸出:
14 May 2012
此代碼是
- 更易於維護(如果有什麼輸出格式稍有變化,而輸入的格式保存下來,反之亦然? )
- 可以說比較容易閱讀
比任何依賴於拆分字符串,固定索引或正則表達式的子字符串的解決方案。
爲什麼不parse()
字符串使用DateFormat
,這會給你一個Date
對象。將此Date
設置爲Calendar
,您可以查詢任何所需的字段,例如get(Calendar.DAY_OF_MONTH)
。
事情是這樣的......
SimpleDateFormat myDateFormat = new SimpleDateFormat("EEE, d MMM yyyy H:m:s z");
Date myDate = myDateFormat.parse(inputString);
Calendar myCalendar = Calendar.getInstance();
myCalendar.setTime(myDate);
String outputDate = myCalendar.get(Calendar.DAY_OF_MONTH) + " " +
myCalendar.get(Calendar.MONTH) + " " +
myCalendar.get(Calendar.YEAR);
可能是冗長的寫了一點點,但至少你結束了一個Calendar
,可以很容易給你想要的任何字段(如果,例如,你想用一個字段值來執行一些處理)。它也可以用於計算或許多其他目的。這真的取決於你有什麼想要做的日期後,你有。
-1,這不會編譯。即使是這樣,它可能會打印一堆數字,例如「May」。我建議使用'outputDate = String.format(「%1 $ te%1 $ tb%1 $ tY」,myCalendar)' – aioobe
很酷,很好的建議,我不知道這樣的說法。至於它沒有編譯 - 有一些東西丟失,就像他們需要填充'inputString'並做一些導入 - 我不能爲他們完成所有的工作。我更關心的是如何嘗試提供一種不同的方式來使用日期,以便他們在事後可以使用數據來實現某些功能,如果他們需要的話。我意識到它打印'5'而不是'May' - 我不想過分複雜的答案。 – wattostudios
另外,日曆。獲得返回一個'int',它不能與char,'''結合成一個'String'(這就是我所指的實際)。 – aioobe
自認爲是一個固定長度的字符串,你可以使用substring()
String input = "Mon, 14 May 2012 13:56:38 GMT";
String output = input.substring(5, 16);
這裏假設DAY_OF_MONTH(本例中爲14)始終爲2位數字,但並非總是如此。與MONTH類似 - 它不會總是隻有3個字符長。 – wattostudios
您可以使用此:
String st = "Mon, 14 May 2012 13:56:38 GMT";
for(int i=0;i<=st.length();i++){
if (st.charAt(i)==':') {
index=i;
index=index-2;
break;
}
}
String onlyDate=st.substring(4,index).trim();
- 1. 如何從給定的字符串獲取php日期格式
- 2. 如何只獲取日期字符串的年份部分?
- 3. 如何從給定的字符串獲取子字符串?
- 4. 如何從給定的字符串獲取字符串變量
- 5. 如何從給定的字符串獲取外部HTML /標記?
- 6. 如何從日期字符串中獲取日期格式?
- 7. 如何從日期字符串格式獲取日期對象
- 8. 如何從字符串中獲取部分字符串
- 9. 如何從SQL中的字符串中獲取特定部分
- 10. 如何獲取字符串的部分
- 11. 獲取日期時間從字符串
- 12. 從字符串獲取日期時間
- 13. 從字符串獲取日期格式
- 14. PHP從字符串中獲取日期
- 15. 不從字符串中獲取日期?
- 16. 從日期字符串獲取時間
- 17. 獲取字符串的特定部分
- 18. 獲取字符串的特定部分
- 19. 如何從字符串日期中獲取日,月,年?
- 20. 從給定的日期獲取日
- 21. 從字符串中提取日期的一部分
- 22. 如何獲取日期字符串的總分鐘數?
- 23. 如何獲取部分字符串
- 24. 如何提取給定子字符串後的字符串的一部分?
- 25. 獲取使用給定字符串的一部分的完整字符串
- 26. 獲取部分字符串
- 27. PHP如何提取給定字符串的一部分?
- 28. 如何從java中的字符串獲取數字部分?
- 29. 從json日期字符串中提取日期到字符串
- 30. Tcl從字符串中獲取部分
你要買轉化爲一流的'Date'對象,或者是你問如何去除字符串(即使用正則表達式)? – andersoj
看起來像你需要[正則表達式](http://docs.oracle.com/javase/tutorial/essential/regex/)... – Wernsey
是的,我需要一個正則表達式,它只會給我日期部分 – Neha