2012-04-14 40 views
5

Tôi đang phát triển một phần mềm bằng java.JAVA: gmt để chuyển đổi giờ địa phương

Tôi nhận được dấu thời gian bằng GMT từ máy chủ. Phần mềm có thể được sử dụng ở mọi nơi trên thế giới. Bây giờ tôi muốn nhận múi giờ địa phương nơi phần mềm đang chạy và chuyển đổi múi giờ GMT này sang giờ địa phương.

Vui lòng cho tôi biết cách thực hiện việc này?

+1

sẽ không một Lịch đơn giản. getInstance() getTimeZone(). getDisplayName() cung cấp cho u múi giờ địa phương không? –

Trả lời

4

Để có được múi giờ địa phương của bạn:.

Calendar.getInstance() getTimeZone() getDisplayName()

Đối với việc chuyển đổi:.

Date TimeZone conversion in java?

0

Hãy xem Joda-Time. Nó có tất cả các chức năng cập nhật liên quan đến người ta cần

4

Giả sử timestamp của bạn là Date hoặc Number:

final DateFormat formatter = DateFormat.getDateTimeInstance(); 
formatter.setTimeZone(TimeZone.getTimeZone("America/New_York")); 
System.out.println(formatter.format(timestamp)); 

Nếu dấu thời gian của bạn được xem là String, trước tiên bạn phải phân tích cú pháp. Bạn sẽ tìm thấy nhiều ví dụ với định dạng tùy chỉnh trong SimpleDateFormat, một ví dụ đơn giản với định dạng built-in:

final DateFormat formatter = DateFormat.getDateTimeInstance(); 
formatter.setTimeZone(TimeZone.getTimeZone("GMT")); 
final Date timezone = formatter.parse("2012-04-14 14:23:34"); 
formatter.setTimeZone(TimeZone.getTimeZone("America/New_York")); 
System.out.println(formatter.format(timezone)); 
0

Giả sử thời gian máy chủ ở định dạng yyyy/MM/dd HH:mm:ss.SSS công trình này:

String serverTime = "2017/12/06 21:04:07.406"; // GMT 
ZonedDateTime gmtTime = LocalDateTime.parse(serverTime, DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss.SSS")).atZone(ZoneId.of("GMT")); 
LocalDateTime localTime = gmtTime.withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime(); 
Các vấn đề liên quan