2008-09-19 3 views
10

Каков наилучший способ создания текущей даты в Java?Создать текущую дату в Java

YYYY-MM-DD: чч-мм-сс

+0

«когда не используется база данных»? Какие?? Вы обычно запрашиваете базу данных для получения текущего времени? – 2008-09-19 03:04:04

+0

Вы хотите, чтобы строка в этом формате или какой-то объект timestamp/date? – sblundy 2008-09-19 03:04:42

+0

JohnMilikan: Неэффективно, вы можете выбрать текущую дату из sysibm.sysdummy1 (это вариант DB2, я не помню, как называются тупиковые таблицы Oracles). Вы правы, хотя я этого не сделаю. – 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 Lang, вы можете использовать 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 предоставляет информацию о дате и времени строки шаблона.

Смежные вопросы