Wie zum extrahieren von Datum und Zeit aus einem String Timestamp in java
Bin ich immer Datum und Uhrzeit als String
TIMESTAMP
von MySQL aus einem server in einem solchen format:
2014-02-15 05:18:08
Was ich will, ist zu extrahieren, das Datum in DD-MM-YYYY
format und die Zeit, in HH:MM:SS AM/PM
- format. Auch die Zeitzone dieser Zeitstempel ist anders, und ich will es in der indischen Zeitzone(MEZ).
Erinnere mich an die timestamp
ist String
Datentyp.
- Verwenden Sie eine
SimpleDateFormat
Instanz für die Analyse. - Durch die Art und Weise, vermeiden Sie die 3-Buchstaben-Zeit-zone-codes. Sie sind weder standardisiert noch einzigartig. Ihre Nutzung des
IST
kann bedeuten, "Irish Standard Time" sowie "India Standard Time". Verwenden Sie stattdessen eine richtige Zeitzone name wie "Asien/Kolkata".
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
java.text.SimpleDateFormat
undjava.util.TimeZone
Die Zeitzone, das Datums-string in? Ersetzen Sie die unten
UTC
Zeitzone mit ZeitzoneHinweis:, In welchem format die Stunde ist in (24 Stunde/12 Stunde) in Ihr input-string? Das obige Beispiel geht davon aus, dass es im 24-Stunden-format, weil es in keine AM/PM-info in der input-string.
Wenn der input-string ist auch im 12-Stunden-format, dann ist dein input string sollte erwähnen, AM/PM-info auch wie
2014-02-15 05:18:08 PM
. In diesem Fall ändern Sie diesdf
zunew SimpleDateFormat("yyyy-MM-dd hh:mm:ss a")
========================
Bearbeitet: =====================
Zur Beantwortung Ihrer nächsten Frage im Kommentar "gewusst Wie: extrahieren von Datum und Zeit getrennt"...
Akzeptierten Antwort von Yatendra Goel korrekt ist.
Joda-Time
Zum Spaß, hier ist die gleiche Art von code mithilfe der Joda-Time 2.3 Bibliothek.
Beachten Sie, dass Joda-Time ist jetzt in Wartung-Modus. Das team berät migration nach java.Zeit. Sehen meine andere Antwort für java.Zeit code.
FYI... Indien ist fünf und eine halbe Stunden vor UTC/GMT. Daher die dreißig minütige Unterschied in den Ausgaben unten.
Dump in die Konsole...
Beim laufen...
können Sie verwenden, DATE_FORMAT(Datum,format).
in Ihrem Fall, es wäre so etwas wie dieses:
-edit: der obige code wird zurückgeben Ihrem Zeitstempel als : "TT-MM-JJJJ".
timestamp, wenn Sie Ihre mySQL-Feld (in anderen Worten: Spalte).
anderen format-Optionen würde ich empfehlen, Sie haben einen schnellen Blick auf:
Optionen DATE_FORMAT
Verwenden Sie ein " = SimpleDateFormat wie:-
Weitere Infos
"=SimpleDateFormat.
tl;dr
Objekte verwenden, nicht strings
Sollten Sie das abrufen von Datum-Zeit-Werte aus der Datenbank als Datum-Zeit-Objekte anstatt Strings.
Als der JDBC 4.2 und höher, können wir tauschen java.Zeit Objekte mit der Datenbank.
Retrieval.
java.Zeit
Den java.Zeit Klassen in Java 8 und später verdrängen die lästige alte legacy-Datum-Zeit-Klassen sowie der 3rd-party-Joda-Time-Bibliothek.
java.sql.Timestamp
Klasse wird ersetzt durchInstant
.java.sql.Date
Klasse wird ersetzt durchLocalDate
.java.sql.Time
Klasse wird ersetzt durchLocalTime
.-
Parsing String
Wenn Sie verklebt sind, mit einer solchen Zeichenfolge, analysieren es mit Hilfe einer java.Zeit-Klassen. Die anderen Antworten sind mit den lästigen alten Datum-Zeit-Klassen gebündelt mit den ersten Java-Versionen. Das sind jetzt Vermächtnis, und sollte vermieden werden.
Ihre input-string ist fast in standard ISO 8601 - format. Nur ersetzen Sie das LEERZEICHEN in der Mitte mit einem
T
.LocalDateTime
Analysieren als
LocalDateTime
als der string fehlt jegliche info über offset von UTC oder Zeitzone.OffsetDateTime
Ich davon aus, dass der Wert im input-String sein soll, ein moment, in UTC Zeitzone. So passen in UTC.
ZonedDateTime
Aufgefordert, für diese angepasst werden, in der Indien Zeit zone, die ist fünf und eine halbe Stunde vor der UTC.
Den
atZoneSameInstant
bedeutet, dass die resultierendeZonedDateTime
stellt die gleichen simultaner moment, als dieOffsetDateTime
. Die beiden sind nur durch verschiedene, die Sie anzeigen gleichen moment über zwei verschiedene Linsen Wand-Uhr-Zeit.LocalDate
&LocalTime
Wenn Sie wollen, um die Arbeit mit der Datums-Teil und time-of-day-Teils separat, extrahieren Sie alle als
Local…
.Erzeugung von String-Darstellung
Den
toString
Methode, auf die alle Klassen generieren, die eine String-Darstellung mit standard - ISO 8601 Formate. Für andere Formate verwenden, verwenden Sie dieDateTimeFormatter
Klasse. Suche Stack Overflow für viele Beispiele und Diskussionen.Der einfachste Weg ist, lassen Sie die Klasse automatisch lokalisieren für Sie. Geben Sie ein
Locale
für das gewünschte menschliche Sprache und die gewünschte kulturelle Normen zu entscheiden, Themen wie groß - /Kleinschreibung, Abkürzungen, und so.Über java.Zeit
Den java.Zeit framework ist in Java 8 und höher. Diese Klassen verdrängen die lästige alte legacy Datum-Zeit-Klassen wie
java.util.Date
,Calendar
, &" = SimpleDateFormat
.Den Joda-Time Projekt, jetzt in Wartung-Modus, rät der migration auf die java.Zeit Klassen.
Um mehr zu erfahren, siehe die Oracle Tutorial. Und die Suche Stack Overflow für viele Beispiele und Erklärungen. Spezifikation JSR 310.
Können Sie exchange java.Zeit Objekte direkt mit Ihrer Datenbank. Verwenden Sie eine JDBC-Treiber kompatibel mit JDBC 4.2 oder später. Keine Notwendigkeit für Streicher, keine Notwendigkeit für
java.sql.*
Klassen.Wo erhalten Sie die java.Zeit-Klassen?
Den ThreeTen-Extra Projekt erweitert die java.mal mit zusätzlicher Klassen. Dieses Projekt ist ein Testgelände für mögliche künftige Erweiterungen zu java.Zeit. Sie finden möglicherweise einige nützliche Klassen, die hier wie
Interval
,YearWeek
,YearQuarter
, und mehr.