Chcę uzyskać lokalny czas w różnych strefach czasowych za pomocą kodu Java. Na podstawie strefy czasowej przekazanej do funkcji potrzebuję czasu lokalnego tej strefy czasowej. Jak to osiągnąć?Jak uzyskać lokalny czas w różnych strefach czasowych?
Odpowiedz
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));
ja zachęcam, aby sprawdzić Joda czasie alternatywę (ale bardzo popularne) do standardowego daty i czasu Java API:
http://joda-time.sourceforge.net/index.html
Korzystanie Joda czas, myślę, że to jest to, czego co:
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);
}
}
trzeba tylko wiedzieć, standardowy identyfikator strefy czasowej w kwestii, takich jak UTC.
Napisałem następujący program, aby uzyskać czas dla wszystkich stref czasowych dostępnych sprawdzić, czy to pomaga ...
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());
sprawdzić. mam nadzieję, że to pomoże.
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);
zapoznaj się z konwencjami nazewnictwa java i trzymaj się ich – 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 oferuje kilka nowych klas w pakiecie 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));
}
}
W Javie 8 można wykorzystać metodę ZonedDateTime.now(ZoneId zone)
:
ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("Asia/Tokyo"));
LocalTime localTime = zonedDateTime.toLocalTime();
System.out.println(localTime);
- 1. Jak uzyskać czas lokalny na iOS
- 2. Jak zaktualizować timezonedb w PHP (aktualizowanie informacji o strefach czasowych)?
- 3. Czy znaczniki czasowe unix zmieniają się w strefach czasowych?
- 4. C# i Bieżący czas lokalny dla różnych krajów
- 5. jak przekonwertować czas serwera na czas lokalny
- 6. Jak dokładnie uzyskać aktualny czas UTC przez strtotime?
- 7. Jak skonwertować czas lokalny na UTC?
- 8. C# Datetimes: Konwersja dla różnych stref czasowych
- 9. Jak uzyskać aktualny czas w innym Strefie czasowej w Delphi?
- 10. Jak przekonwertować wyszukiwanie dynamiczne na czas lokalny?
- 11. Jak wyświetlić czas UTC jako czas lokalny na stronie internetowej?
- 12. Swift - Uzyskaj lokalny czas na datę
- 13. Jak działa funkcja "scrum", gdy uczestnicy znajdują się w 12 strefach czasowych?
- 14. Wyświetlaj dokładny czas lokalny na stronie internetowej?
- 15. Zrozumienie UILocalNotification stref czasowych
- 16. Dzielność stref czasowych NSDatePicker
- 17. czas konwersji na czas lokalny podane miasto/stan/kraj
- 18. Jak uzyskać czas UTC
- 19. Asp.net WebAPI deserializes ciąg czas UTC na czas lokalny
- 20. Jak przekonwertować ciąg daty UTC na czas lokalny (systemTimeZone)
- 21. Dlaczego funkcja DateTime.MinValue może nie być serializowana w strefach czasowych przed UTC?
- 22. Joda Czas: Konwertuj UTC na lokalny
- 23. POSIXct do numerycznego przy użyciu różnych stref czasowych
- 24. Java: Jak przekonwertować sygnaturę czasową UTC na czas lokalny?
- 25. Jak sformatować datę i czas, aby program Excel ją zrozumiał?
- 26. W R, aby przekonwertować sformatowany czas lokalny na epokę?
- 27. Jak mogę uzyskać aktualny czas w C#?
- 28. Jak uzyskać czas epoki w C#?
- 29. Jak uzyskać czas trwania utworu w JPlayerze
- 30. Jak uzyskać czas utc w jQuery datetimepicker
Dzięki za odpowiedzi . Piszę małą klasę i nie chcę importować pakietu joda dla tej małej klasy. Czy możesz zaproponować inny sposób? Jeszcze raz dziękuję – Raj