本文介紹了我想在Java 6中將字符串轉(zhuǎn)換為日期格式的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我的輸入如下:
20180718140032488266000Z-0600
它在數(shù)據(jù)庫中的持久化應(yīng)該是這樣的:
21-JUL-18 12.05.25.000000000 AM
目前我編寫的代碼如下:
public static void main(String[] argv) throws ParseException {
// SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmssSSSZ");
String dateInString = "20180718140032488266000Z-0600";
Timestamp ts = formatDate(dateInString);
System.out.println(ts);
}
private static Timestamp formatDate(String dateString) throws ParseException {
// dateString = dateString.replaceAll("Z", "0000");
SimpleDateFormat fmtTimestamp = new SimpleDateFormat("yyyyMMddHHmmssSSS'Z'");
Date dtTimestamp1 = fmtTimestamp.parse(dateString);
Timestamp timestamp = new java.sql.Timestamp(dtTimestamp1.getTime());
return timestamp;
}
我得到了以下格式的輸出:2018-07-24 05:38:18.0
,我的問題是如何才能將AM/PM也包含在輸出中。請?zhí)岢鼋鉀Q方案。我會非常感激的。
推薦答案
我的問題是如何才能使AM/PM也出現(xiàn)在輸出中
好吧,Java 6已經(jīng)很老了。但您需要檢查SimpleDateFromat的文檔,您將看到字母a
是針對上午/下午Maker:
的
a Am/pm marker Text PM
您的格式為21-JUL-18 12.05.25.000000000 AM
,因此在最后添加此內(nèi)容時,您需要創(chuàng)建一個新的SimpleDateFormat
public static void main(String args[]) throws IOException, ParseException {
String dateInString = "20180718140032488266000Z-0600";
Timestamp ts = formatDate(dateInString);
System.out.println(ts);
SimpleDateFormat fmtTimestamp = new SimpleDateFormat("dd-MMM-YY hh.mm.s.SSSSS a");
System.out.println(fmtTimestamp.format(ts));
}
有了這個,你會得到這個…但對于這個問題,還有更好的解決方案。比如升級到Java的新版本。我的拙見。
這篇關(guān)于我想在Java 6中將字符串轉(zhuǎn)換為日期格式的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,