Calendar firstTime =Calendar.getInstance();
java.sql.Timestamp t1=new Timestamp(firstTime.getTime().getTime());
這是給當前時間這樣時間戳彭定康
`2015-01-06 17:19:20.763`
但我想戳圖案像下面
'06-DEC-15 17:19:20.763000000 PM'
什麼我,如果我想打印時間戳模式這樣
做有人可以幫我請
Calendar firstTime =Calendar.getInstance();
java.sql.Timestamp t1=new Timestamp(firstTime.getTime().getTime());
這是給當前時間這樣時間戳彭定康
`2015-01-06 17:19:20.763`
但我想戳圖案像下面
'06-DEC-15 17:19:20.763000000 PM'
什麼我,如果我想打印時間戳模式這樣
做有人可以幫我請
可以使用的SimpleDateFormat:
Calendar firstTime = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat();
df.applyPattern("dd-MMM-yy HH:mm:ss.SSS000000 aa");
System.out.println(df.format(firstTime.getTimeInMillis()).toUpperCase());
我已經SSS之後把「0」,因爲你的時間以毫秒爲單位,並沒有任何意義,有三個以上的「S」秒,但這就是要求。
toUpperCase是另一個要求(「Jan」不夠)。
如果您強烈堅持特定的輸出格式(1:1),則應額外使用DateFormatSymbols
。
final DateFormatSymbols dfs = new DateFormatSymbols();
dfs.setShortMonths(new String[]{
"JAN", "FEB", "MAR", "APR", "MAY", "JUN",
"JUL", "AUG", "SEP", "OCT", "NOV", "DEC"});
final DateFormat df = new SimpleDateFormat("dd-MMM-yy HH:mm:ss.SSS000000 a", dfs);
System.out.println(df.format(new Timestamp(System.currentTimeMillis())));
而且請記住,DateFormat
是不線程安全的。
@mqsuresh仍然這一個打印06-JAN-15 12:47:52.000000637 PM而不是06-JAN-15 12:47:52.637000000 PM。看看我的解決方案。 – panagdu
@demostene你說得對 - 你需要那些零,你實際上毫無意義,因爲** MILI **秒(1/1000秒)沒有更精確的3位數。除非你使用'System.nanoTime',否則'Timestamp'不能獲得更高的精度。至於你的解決方案:'toUpperCase'是不夠的,因爲它會在許多不同的語言環境中崩潰。 – Cromax
我還沒有看到任何區域設置要求。 – panagdu
你們倆都想要一個24小時的AM/PM標記嗎? – wassgren
是的,我想要24小時和上午/下午標記 – mqsuresh
是否要打印它或將其存儲在數據庫中?如果首先看[這裏](http://stackoverflow.com/questions/1156468/how-to-format-a-java-sql-timestamp-for-displaying) – Jens