Lesen der Systemzeit in der CST-Zeitzone mit Java
Ich versuche zu Lesen, das dem system-Datum in der CST-Zeitzone mit Java. Ich habe versucht den folgenden code, aber immer wenn ich formatter.parse()
es ist wieder Zeit in der EST-Zeitzone.
private Date getTodayInCST() {
Calendar currentdate = Calendar.getInstance();
DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
TimeZone obj = TimeZone.getTimeZone("CST");
formatter.setTimeZone(obj);
String today = formatter.format(currentdate.getTime());
try {
return formatter.parse(today);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
Ein Datum, keine Zeitzone Informationen so, was Sie versuchen zu tun, ist nicht möglich. Sie können print ein Datum mit einem bestimmten Zeitzone einstellen wenn.
mögliche Duplikate von so stellen Sie die Zeitzone von java.util.Datum?
Es kann nicht sein, Rücksendung das Datum in EST. Wir sind jetzt aktuell in der C - DT, in welchen Zeiten sind 1 Stunde später, als Sie bei der CST. Wenn die Zeit, die Sie Lesen, ist in CDT, die Ausgabe Aussehen würde EST für Sie.
FYI, ist die lästige alte Datum-Zeit-Klassen wie
mögliche Duplikate von so stellen Sie die Zeitzone von java.util.Datum?
Es kann nicht sein, Rücksendung das Datum in EST. Wir sind jetzt aktuell in der C - DT, in welchen Zeiten sind 1 Stunde später, als Sie bei der CST. Wenn die Zeit, die Sie Lesen, ist in CDT, die Ausgabe Aussehen würde EST für Sie.
FYI, ist die lästige alte Datum-Zeit-Klassen wie
java.util.Date
, java.util.Calendar
, und java.text.SimpleDateFormat
sind jetzt legacy, überlagert von der java.Zeit Klassen gebaut in Java 8 und höher. Siehe Einführung Oracle.InformationsquelleAutor manjunatha citragar | 2014-09-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
java.util.Date
Objekte enthalten keine Zeitzoneninformationen, die von selbst - Sie können nicht legen Sie die Zeitzone ein Date-Objekt. Die einzige Sache, die ein Date-Objekt enthält, ist die Anzahl von Millisekunden seit Beginn der "Epoche" - 1. Januar 1970, 00:00:00 UTC.Wenn Sie festlegen möchten timezone versuchen Sie es auf diese Weise
InformationsquelleAutor SparkOn
tl;dr
Details
Durch "CST", meinst du Central Standard Time in Nordamerika, oder China Standard Time?
Angeben die richtige Zeit zone name im format
continent/region
wieAmerika/Montreal
,Africa/Casablanca
, oderPacific/Auckland
. Verwenden Sie niemals die 3-4 Buchstaben-Abkürzung wieEST
oderIST
wie Sie sind nicht wahr, Zeitzonen, nicht standardisierten und nicht einmal einzigartig ist, wie oben gesehen mitCST
.java.Zeit
Sind Sie mit lästigen alten Datum-Zeit-Klassen, die jetzt legacy. Überlagert von der java.Zeit Klassen.
Holen Sie sich die aktuellen moment in UTC. Die
Instant
Klasse repräsentiert einen moment auf der Zeitachse, UTC mit einer Auflösung von Nanosekunden (bis zu neun (9) Ziffern eines dezimalbruchs).Passen Sie in eine andere Zeitzone. Derselbe moment, derselbe Punkt auf der timeline, die verschiedene Wand-Uhr-Zeit.
Den oben genannten strings sind im standard ISO-8601-format. Die
ZonedDateTime
- Klasse erweitert, die standard vernünftig fügen Sie den Namen der zone in eckigen Klammern.Wenn Sie möchten, zum erzeugen von String-Objekten in andere Formate, verwenden Sie
DateTimeFormatter
.Ü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.
Mit einem JDBC-Treiber kompatibel mit JDBC 4.2 oder höher verwenden, können Sie exchange java.Zeit Objekte direkt mit Ihrer Datenbank. Keine Notwendigkeit für String oder 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.InformationsquelleAutor Basil Bourque
Wenn Sie wollen, um den code zu liefern, die aktuelle Zeit unter Berücksichtigung der Sommerzeit-Anpassung von CST zu CDT oder Umgekehrt ,können Sie die
"CST6CDT" timezone. anstelle von "CST" in " = SimpleDateFormat.
InformationsquelleAutor udyan