Mai mult
Cum să obțineți ora curentă în formatul YYYY-MM-DD HH:MI:Sec. Milisecundă format în Java?
Codul de mai jos dă-mi timp curent. Dar ea nu spune nimic despre milisecunde.
public static String getCurrentTimeStamp() {
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//dd/MM/yyyy
Date now = new Date();
String strDate = sdfDate.format(now);
return strDate;
}
Am întâlnire în formatul2009-09-22 16:47:08
(YYYY-MM-DD HH:MI:Sec).
Dar vreau sa recuperez ora curentă în format2009-09-22 16:47:08.128
((YYYY-MM-DD HH:MI:Sec. Ms)- în cazul în care 128 spune milisecundă.
SimpleTextFormat
va funcționa bine. Aici, cea mai mică unitate de timp este secunda, dar cum fac rost de milisecunde la fel de bine?
596
13
Un Java o linie
în JDK8 stil
Trebuie doar să adăugați milisecundă de câmp în format de dată șir de caractere:
De API doc de SimpleDateFormat descrie șir format în detaliu.
încercați acest lucru:-
http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
sau
tl;dr
java.timp
În Java 8 și mai târziu, avem java.time cadru construit în Java 8 și mai târziu. Aceste noi clase înlocui supărătoare vechi de java.util.Data/.Calendar cursuri. Noile clase sunt inspirate de succes Joda-Time cadru, destinate ca succesorul acestuia, similar în concept, dar re-proiectat. Definit de JSR 310. Prelungită de ThreeTen-Extra, proiect. Vezi Tutorial.
Fi conștienți de faptul că java.timpul este capabil de a nanosecundă rezoluție (9 zecimale într-o fracțiune de secundă), versus milisecunde rezoluție (3 zecimale) de ambele java.util.Data & Joda Timp. Deci, atunci când formatare pentru a afișa doar 3 zecimale, te-ar putea ascunde de date.
Dacă doriți pentru a elimina orice microsecunde sau nanosecunde de date, trunchia.
Java.timpul clase de utilizare ISO 8601 format în mod implicit atunci când parsarea/generatoare de siruri de caractere. Un " Z " la sfârșitul este prescurtarea de la `Zulu, și înseamnă UTC.
O
Instant
reprezintă un moment pe cronologie în UTC, cu rezoluție de până la nanosecunde. Capturarea momentul actual în Java 8 este limitată la milisecunde, cu o nouă implementare în Java 9 captarea până la nanosecunde în funcție de hardware-ul computerului ceas abilitățile lui.Înlocuiți " T "în mijloc cu un spațiu, și" Z " cu nimic, pentru a obține rezultatul dorit.
Ca tu nu't pasă inclusiv compensarea sau de fus orar, face o "locale" data-data nu au legătură cu orice localitate special.
Joda Timp
Succes Joda-Time library a fost sursa de inspiratie pentru java.cadru de timp. Recomandabil de a migra de la java.timp atunci când este convenabil.
ISO 8601 format include milisecunde, și este setarea implicită pentru Joda-Time 2.4 bibliotecă.
Atunci când a alerga...
De asemenea, puteți cere pentru milisecunde fracțiune-de-un-al doilea ca număr, dacă este necesar:
Cel mai simplu mod de a fost de a (înainte de Java 8) utilizarea,
Dar SimpleDateFormat nu este thread-safe. Nici java.util.Data. Acest lucru va duce la ceea ce duce la potențiale probleme de concurenta pentru utilizatori. Și există multe probleme în aceste modele existente. Pentru a depăși aceste acum în Java 8 avem un pachet separat numit java.timp. Acest Java SE 8 Data și Ora documentul are o bună imagine de ansamblu despre asta.
Deci, în Java 8 ceva de genul de mai jos va face truc (a format data/ora curentă),
Și un lucru de remarcat este că a fost dezvoltat cu ajutorul populare treilea partid biblioteca joda-time,
Dar acum
joda-timp devine învechită și a cerut utilizatorilor să migreze la new java.timp
.Oricum, având în a spus că,
Dacă aveți o Calendar de exemplu, puteți utiliza de mai jos să-l convertească la noua java.timp`,
Dacă ați avut o Întâlnire obiect,
Dacă ai fi avut epoca de milisecunde,
Mi-ar folosi ceva de genul asta:
Pentru a completa raspunsurile de mai sus, aici este un mic exemplu de lucru de un program care tipărește data și ora curente, inclusiv milisecunde.
Utilizați această pentru a obține ora curentă în format specificat :
Eu nu't vedea o referire la acest lucru:
format de mai sus este, de asemenea, util.
http://www.java2s.com/Tutorials/Java/Date/Date_Format/Format_date_in_yyyyMMddHHmmssSSS_format_in_Java.htm
Ans:
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); ZonedDateTime start = Instant.acum().atZone(ZoneId.systemDefault()); String startTimestamp = a începe.format(dateFormatter);
Doctorul în Java 8 nume fracțiune de secundă , în timp ce în Java 6 a fost numit milisecunde. Acest lucru m-a adus confuzie
Puteți pur și simplu să-l în formatul dorit.