2008-09-19 36 views
10

在Java中生成當前日期戳記的最佳方式是什麼?用Java生成當前日期戳記

YYYY-MM-DD:HH-MM-SS

+0

「何時不使用數據庫」?什麼??你通常查詢數據庫來檢索當前時間嗎? – 2008-09-19 03:04:04

+0

你想要一個格式的字符串或某種時間戳/日期對象嗎? – sblundy 2008-09-19 03:04:42

+0

JohnMilikan:效率低下,您可以從sysibm.sysdummy1中選擇當前日期(這是DB2變體,我無法記住什麼ORACLE虛擬表被稱爲)。你說得對,那不是我做這件事的方式。 – paxdiablo 2008-09-19 03:13:59

回答

26

使用標準的JDK,你將要使用java.text.SimpleDateFormat的

Date myDate = new Date(); 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss"); 
String myDateString = sdf.format(myDate); 

但是,如果你要使用Apache Commons包郎,你可以使用org.apache.commons的選項。 lang.time.FastDateFormat

Date myDate = new Date(); 
FastDateFormat fdf = FastDateFormat.getInstance("yyyy-MM-dd:HH-mm-ss"); 
String myDateString = fdf.format(myDate); 

FastDateFormat具有線程安全的優點,因此您可以在整個應用程序中使用單個實例。這是嚴格的格式化日期,不支持像SimpleDateFormat解析,如下例:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss"); 
Date yourDate = sdf.parse("2008-09-18:22-03-15"); 
8
Date d = new Date(); 
String formatted = new SimpleDateFormat ("yyyy-MM-dd:HH-mm-ss").format (d); 
System.out.println (formatted); 
0

SimpleDateFormatter是你想要的。

1

還有

long timestamp = System.currentTimeMillis() 

這就是new Date()(@John Millikin)內部使用。一旦你有了,你可以將其格式化,只要你喜歡。

0

我認爲你需要在你的問題上更清楚一點。特別是,您在過程結束時需要哪種數據類型?一個字符串?

0
final DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd:hh-mm-ss"); 

formatter.format(new Date()); 

JavaDoc for SimpleDateFormat提供有關日期和時間模式字符串的信息。

相關問題