Desidero ottenere l'ora locale di diversi fusi orari utilizzando il codice Java. Sulla base del fuso orario passato alla funzione ho bisogno dell'orario locale di quel fuso orario. Come ottenere questo?Come ottenere l'ora locale di diversi fusi orari?
risposta
java.util.TimeZone tz = java.util.TimeZone.getTimeZone("GMT+1");
java.util.Calendar c = java.util.Calendar.getInstance(tz);
System.out.println(c.get(java.util.Calendar.HOUR_OF_DAY)+":"+c.get(java.util.Calendar.MINUTE)+":"+c.get(java.util.Calendar.SECOND));
l'invitiamo a controllare Joda Tempo, in alternativa (ma molto popolari) per la data e l'ora standard di Java API:
http://joda-time.sourceforge.net/index.html
Utilizzando Joda tempo, credo che questo è ciò che si cosa:
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
public class TimeZoneDemo {
public static void main(String[] args) {
DateTime now = new DateTime(System.currentTimeMillis(), DateTimeZone.forID("UTC"));
System.out.println("Current time is: " + now);
}
}
Hai solo bisogno di conoscere l'ID standard per il fuso orario in questione, come ad esempio UTC.
ho scritto il seguente programma per ottenere il tempo per tutti i Timezones disponibili, vedere se questo aiuta ...
String[] zoneIds = TimeZone.getAvailableIDs();
for (int i = 0; i < zoneIds.length; i++) {
TimeZone tz = TimeZone.getTimeZone(zoneIds[i]);
System.out.print(tz.getID() + " " + tz.getDisplayName());
Calendar calTZ = new GregorianCalendar(tz);
calTZ.setTimeInMillis(new Date().getTime());
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, calTZ.get(Calendar.YEAR));
cal.set(Calendar.MONTH, calTZ.get(Calendar.MONTH));
cal.set(Calendar.DAY_OF_MONTH, calTZ.get(Calendar.DAY_OF_MONTH));
cal.set(Calendar.HOUR_OF_DAY, calTZ.get(Calendar.HOUR_OF_DAY));
cal.set(Calendar.MINUTE, calTZ.get(Calendar.MINUTE));
cal.set(Calendar.SECOND, calTZ.get(Calendar.SECOND));
cal.set(Calendar.MILLISECOND, calTZ.get(Calendar.MILLISECOND));
System.out.println(" "+cal.getTime());
verifica questo. spero che possa essere d'aiuto
TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
Calendar cal = Calendar.getInstance();
int LocalOffSethrs = (int) ((cal.getTimeZone().getRawOffset()) *(2.77777778 /10000000));
int ChinaOffSethrs = (int) ((tz.getRawOffset()) *(2.77777778 /10000000));
TimeZone tz1 = TimeZone.getTimeZone("US/Central");
String ss =cal.getTimeZone().getDisplayName();
System.out.println("Local Time Zone : " + ss);
System.out.println("China Time : " + tz.getRawOffset());
System.out.println("Local Offset Time from GMT: " + LocalOffSethrs);
System.out.println("China Offset Time from GMT: " + ChinaOffSethrs);
cal.add(Calendar.MILLISECOND,-(cal.getTimeZone().getRawOffset()));
//cal.add(Calendar.HOUR,- LocalOffSethrs);
cal.add(Calendar.MILLISECOND, tz.getRawOffset());
Date dt = new Date(cal.getTimeInMillis());
System.out.println("After adjusting offset Acctual China Time :" + dt);
si prega di imparare le convenzioni di denominazione java e attenersi a loro – kleopatra
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
SimpleDateFormat dateFormat = new SimpleDateFormat();
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Seoul"));
GregorianCalendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 0);
System.out.println(dateFormat.format(cal.getTime()));
Java 1.8 fornisce alcune nuove classi nel pacchetto java.time
:
package learning.java8;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import org.junit.Test;
public class JavaTimeLT {
@Test
public void zonedDataTimeExample() {
final ZoneId zoneId = ZoneId.of("Europe/Zurich");
final ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(Instant.now(), zoneId);
System.out.println(zonedDateTime.format(DateTimeFormatter.ISO_ZONED_DATE_TIME));
}
}
In Java 8, è possibile utilizzare il metodo ZonedDateTime.now(ZoneId zone)
:
ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("Asia/Tokyo"));
LocalTime localTime = zonedDateTime.toLocalTime();
System.out.println(localTime);
- 1. POSIXct a numerico utilizzando diversi fusi orari
- 2. fusi orari per i diversi utenti
- 3. python confronta datetimes con diversi fusi orari
- 4. Rails: gestione di più fusi orari diversi sulla stessa richiesta
- 5. Date e fusi orari ExtJS
- 6. JVM e fusi orari
- 7. Fusi orari in Python
- 8. elasticsearch e fusi orari
- 9. Fusi orari in Rails
- 10. Javascript/PHP e fusi orari
- 11. Come posso convertire i fusi orari delle finestre in fusi orari compresi in pytz?
- 12. Come ottenere un elenco di fusi orari nel rubino?
- 13. PHP: confronto tra due oggetti DateTime con fusi orari diversi
- 14. Come ottenere le differenze orarie correnti tra due fusi orari
- 15. Impossibile caricare i fusi orari?
- 16. DateTime.Ticks, DateTime.Equals e fusi orari
- 17. Fusi orari validi in lubridate
- 18. Conversione tra fusi orari in C
- 19. Conversione di fusi orari Oracle (utilizzando from_tz)
- 20. Tempo Joda - diverso tra i fusi orari
- 21. JSON Data serializzazione e fusi orari
- 22. Come convertire tra fusi orari con l'API win32?
- 23. Come gestire i fusi orari tra server e client?
- 24. Unix timestamp cambia tra i fusi orari?
- 25. Tradurre i fusi orari delle rotaie
- 26. moment.js, fusi orari e ora legale
- 27. Conversione fusi orari da panda timestamp
- 28. Il modo migliore per gestire la memorizzazione/visualizzazione di date in fusi orari diversi in PHP?
- 29. Seleziona solo fusi orari Stati Uniti
- 30. Componenti NSDateComponents: fromDate e Fusi orari
Grazie per la risposta . Sto scrivendo una piccola classe e non voglio importare pacchetti joda per questa piccola classe. Puoi suggerire in altro modo? Grazie ancora – Raj