Создать текущую метку даты в Java
Вопрос
Каков наилучший способ создания текущей отметки даты в Java?
ГГГГ-ММ-ДД:чч-мм-сс
Решение
Используя стандартный 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");
Другие советы
Date d = new Date();
String formatted = new SimpleDateFormat ("yyyy-MM-dd:HH-mm-ss").format (d);
System.out.println (formatted);
Есть также
long timestamp = System.currentTimeMillis()
который является то, что new Date()
(@Джон Милликин) используется для внутреннего использования.Получив это, вы можете отформатировать его так, как вам нравится.
SimpleDateFormatter — это то, что вам нужно.
final DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd:hh-mm-ss");
formatter.format(new Date());
А JavaDoc для SimpleDateFormat предоставляет информацию о строках шаблонов даты и времени.