Jaki jest najlepszy sposób wygenerowania bieżącego znacznika daty w języku Java?Wygeneruj bieżący datownik w języku Java
YYYY-MM-DD: hh-mm-ss
Jaki jest najlepszy sposób wygenerowania bieżącego znacznika daty w języku Java?Wygeneruj bieżący datownik w języku Java
YYYY-MM-DD: hh-mm-ss
Używając standardowego JDK, będziesz chciał skorzystać java.text.SimpleDateFormat
Date myDate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss");
String myDateString = sdf.format(myDate);
Jednakże, jeśli masz możliwość skorzystania z pakietu Apache Commons Lang, można użyć 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 ma tę zaletę, że jest wątek bezpieczne, dzięki czemu można używać jedno wystąpienie w całej aplikacji. Jest to ściśle związane z formatowaniem dat i nie obsługuje parsowania, takiego jak SimpleDateFormat w następującym przykładzie:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss");
Date yourDate = sdf.parse("2008-09-18:22-03-15");
Od wersji 3.2 FastDateFormat obsługuje parsowanie :) – Ross
Date d = new Date();
String formatted = new SimpleDateFormat ("yyyy-MM-dd:HH-mm-ss").format (d);
System.out.println (formatted);
W tym przykładzie brakuje słowa kluczowego "new" przed SimpleDateFormat ("rrrr ... –
@ dz, dziękuję, naprawiono –
Nie lubię sekcji kodu, które nie mają wymaganego importu – paxdiablo
SimpleDateFormatter to, co chcesz.
Jest też
long timestamp = System.currentTimeMillis()
czyli co new Date()
(@John Millikin) wykorzystuje wewnętrznie. Kiedy już to zrobisz, możesz go sformatować w dowolny sposób.
Uważam, że w swoim pytaniu trzeba być nieco bardziej przejrzystym. W szczególności jakiego rodzaju danych chcesz na końcu procesu? Ciąg?
final DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd:hh-mm-ss");
formatter.format(new Date());
Numer JavaDoc for SimpleDateFormat zawiera informacje na temat ciągów wzorów daty i czasu.
"kiedy nie korzysta się z bazy danych"? Co?? Czy zwykle przesyłasz zapytanie do bazy danych, aby pobrać aktualny czas? –
Czy chcesz String w tym formacie lub jakiś obiekt timestamp/date? – sblundy
JohnMilikan: Nieefektywne, możesz wybrać bieżącą datę z sysibm.sysdummy1 (to jest wariant DB2, nie pamiętam, jak nazywa się tabele atrap Oracles). Masz rację, to nie jest tak, jak bym to zrobił. – paxdiablo