Jak przekonwertować bieżącą datę na ciąg w Javie?Jak przekonwertować bieżącą datę na ciąg w java?
Odpowiedz
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();
Użyj implementacji DateFormat
; na przykład SimpleDateFormat
.
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());
FYI, te kłopotliwe klasy są już starsze, wyparte przez klasy java.time. Zobacz [Oracle Tutorial] (https://docs.oracle.com/javase/tutorial/datetime/TOC.html). –
// GET DATE & TIME IN ANY FORMAT
import java.util.Calendar;
import java.text.SimpleDateFormat;
public static final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";
public static String now() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
return sdf.format(cal.getTime());
}
pobranych z here
Najlepsza odpowiedź na używanie kalendarza zamiast daty. – Random
Jestem zdezorientowany. W jakim wszechświecie "Kalendarz" jest bardziej pożądany niż "Data"? – jasonmp85
Nadal używa on 'Date', ponieważ' Calendar # getTime() 'zwraca' Date' ... – brimborium
String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
Chciałbym dać więcej niż 1 głos. – TimeTrap
Zastosowano połączenie tego i odpowiedzi poniżej poniżej, aby uzyskać termin. C: –
@Ian Purton Czy data ciągu w UTC tz ..? –
szybciej:
String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis());
Wymaga org.apache.commons –
tl; dr
LocalDate.now()
.toString()
2017-01-23
Lepiej wyraźnie określić żądaną/spodziewaną strefę czasową.
LocalDate.now(ZoneId.of("America/Montreal"))
.toString()
java.time
Nowoczesny sposób jak Java 8 i później jest z ramami java.time.
Określ strefę czasową, ponieważ w danym momencie data zmienia się na całym świecie.
ZoneId zoneId = ZoneId.of("America/Montreal") ; // Or ZoneOffset.UTC or ZoneId.systemDefault()
LocalDate today = LocalDate.now(zoneId) ;
String output = today.toString() ;
2017-01-23
Domyślnie masz ciąg w standardowym formacie ISO 8601.
Dla innych formatów użyj klasy java.time.format.DateTimeFormatter
.
O java.time
Ramy java.time jest wbudowana w Java 8 i późniejszych. Klasy te zastępują kłopotliwe stare klasy czasu i daty, takie jak java.util.Date
, .Calendar
, .
Projekt Joda-Time, teraz w maintenance mode, zaleca migrację do java.time. Aby uzyskać więcej informacji, zobacz
. I wyszukaj Stack Overflow dla wielu przykładów i objaśnień.
Znaczna część funkcjonalności java.time powraca walcowy Java 6 & 7 w ThreeTen-Backport i ponadto dostosowany do Android w ThreeTenABP (patrz How to use…).
Projekt ThreeTen-Extra rozszerza java.time o dodatkowe klasy. Ten projekt jest poligonem wskazującym na możliwe przyszłe dodatki do java.time. Możesz znaleźć tutaj kilka użytecznych klas, takich jak Interval
, YearWeek
, YearQuarter
i więcej.
Większość odpowiedzi jest/była ważna. Nowa modyfikacja API JAVA do obsługi Danych sprawiła, że nieco wcześniejsza niejednoznaczność w przetwarzaniu daty w java została zmniejszona.
Otrzymasz przestarzałą wiadomość dla podobnych połączeń.
new Date() // deprecated
Powyższe wywołanie umożliwiło programistom założenie, że nowy obiekt Date da obiekt Date z bieżącym znacznikiem czasu. To zachowanie nie jest spójne z innymi klasami Java API.
Nowym sposobem jest użycie instancji Calendar.
new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()
Również tutaj konwencja nazewnictwa nie jest idealna, ale jest dobrze zorganizowana. Dla osoby takiej jak ja, która ma problemy z zapychaniem rzeczy, ale nigdy nie zapomni czegoś, co brzmi/wydaje się logiczne, jest to dobre podejście.
To jest bardziej synonimem prawdziwym życiu
- Dostajemy obiekt Kalendarz i patrzymy na czas w nim. (musisz się zastanawiać, czy żadne ciało nie dostaje czasu z kalendarza, dlatego powiedziałem, że nie jest idealny.Ale to inny temat w ogóle)
- Następnie chcemy daty w prostym formacie tekstowym, więc używamy Klasa narzędzia SimpleDateFormat, która pomaga nam formatować datę od kroku 1. Użyłem yyyy, MM, dd jako parametry w formacie. Supported date format parameters
Jeszcze jeden sposób, aby to zrobić jest użycie Joda czas API
new DateTime().toString("yyyy-MM-dd")
lub większego trudu
new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")
zarówno zwróci ten sam rezultat.
FYI, kłopotliwych starych klas daty i czasu, takich jak ['java.util.Date'] (https://docs.oracle.com/javase/8/docs/api/java/util /Date.html), 'java.util.Calendar' i' java.text.SimpleTextFormat' są teraz [starszeństwem] (https://en.wikipedia.org/wiki/Legacy_system), wypierane przez [java.time ] (https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html) klasy. Ponadto projekt [Joda-Time] (http://www.joda.org/joda-time/) jest teraz w [trybie konserwacji] (https://en.wikipedia.org/wiki/Maintenance_mode), z zespół doradzający przy migracji do java.time. –
@BasilBourque To właśnie miałem na myśli w mojej odpowiedzi, że najlepsza głosowana odpowiedź jest właściwa, ale nie dotyczy aktualnego dewelopera. W końcu java będzie mieć klasę Clock, a Clock.getTime() będzie znacznie bardziej sensownym i realistycznym naśladowaniem niż klasy Date, DateTime lub Time. Programiści Javy muszą wiedzieć, że OOPS zaczął jako coś, co naśladuje rzeczywiste scenariusze. –
FYI, implementacja 'Clock' w języku Java 8 jest dokładnie taka sama, jak w starszych klasach. Tylko w Javie 9 pojawia się nowa implementacja, zdolna do uchwycenia aktualnego momentu z rozdzielczością tak wysoką jak nanosekundy. –
public static Date getDateByString(String dateTime) {
if(dateTime==null || dateTime.isEmpty()) {
return null;
}
else{
String modified = dateTime + ".000+0000";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date dateObj = new Date();
Date dateObj1 = new Date();
try {
if (dateTime != null) {
dateObj = formatter.parse(modified);
}
} catch (ParseException e) {
e.printStackTrace();
}
return dateObj;
}
}
Możemy przekazać dowolny format, z którego kiedykolwiek korzystasz. –
Niektóre wyjaśnienia na temat tego fragmentu kodu byłyby prawdopodobnie korzystne. – Pyves
Odpowiedź nie dotyczy pytania. I Nie, nie możesz przekazać daty w jakimkolwiek formacie "String" do swojej funkcji. –
Na czasie YYYY-MM-dd
String time = new DateTime(yourData).toString("yyyy-MM-dd");
I Biblioteki datetime:
importu org.joda.time.DateTime;
A czym jest biblioteka "DateTime'? Odpowiedź na przepełnienie stosu powinna mieć pewne wyjaśnienie, ponieważ ta witryna ma być czymś więcej niż biblioteką snippet. –
- 1. Jak przekonwertować ciąg na datę w sybase
- 2. VB.NET: Jak przekonwertować ciąg na datę?
- 3. Konwertuj ciąg znaków na datę w java
- 4. Jak przekonwertować datę perską na datę gregoriańską?
- 5. Jak przekonwertować FileInputStream na ciąg w java?
- 6. Jak przekonwertować char [] na ciąg w java?
- 7. Jak przekonwertować datę ciągu na znacznik czasu w języku Java?
- 8. Jak przekonwertować datę na sformatowany ciąg w VB.net?
- 9. jak przekonwertować datę ciąg na format datetime w python?
- 10. Jak przekonwertować DateTime na datę
- 11. Jak przekonwertować datę na format słowy?
- 12. Jak wstawić bieżącą datę do mysql db przy użyciu java
- 13. Ustaw domyślną datę wyboru daty WPF na bieżącą datę
- 14. Jak przekonwertować ciąg na bajt w Javie
- 15. Wyświetl bieżącą datę na JSF Strona
- 16. Jak przekonwertować DataInputStream na ciąg w Javie?
- 17. jak przekonwertować ciąg całkowity oddzielony spacją na tablicę w JAVA
- 18. jak mogę przekonwertować ciąg znaków Unicode na ASCII w java
- 19. Jak przekonwertować "unsigned long" na ciąg w java
- 20. Jak przekonwertować obiekt InputStream na ciąg w języku Java?
- 21. Jak przekonwertować duży ciąg na liczbę całkowitą w java?
- 22. Jak przekonwertować ciąg na strumień bitów w java
- 23. Jak przekonwertować ciąg do daty w Scala?
- 24. Jak przekonwertować String na Reader w java
- 25. Jak przekonwertować datę tekstową na sygnaturę czasową?
- 26. Jak przekonwertować datę SQL na DateTime?
- 27. jak przekonwertować ciąg c na ciąg d?
- 28. jak przekonwertować datetime na krótką datę?
- 29. Jak przekonwertować ciąg na CharSequence?
- 30. Jak przekonwertować BeautifulSoup.ResultSet na ciąg
To pokaże datę i godzinę, a nie tylko bieżącą datę. – Adamski
Przepraszam za nadmierną wygraną. – jasonmp85
Format używany przez tę metodę jest okropny. Ponadto domyślna strefa czasowa twojego KVM jest domyślnie stosowana, więc Twoje wyniki będą się różnić. A te kłopotliwe klasy są teraz starsze, wyparte przez klasy java.time. Zobacz [Oracle Tutorial] (https://docs.oracle.com/javase/tutorial/datetime/TOC.html). –