2013-04-14 40 views
9

Múi giờ của tôi là UTC + 03: 00. Nó được lưu trữ bên trong một đối tượng DateTimeZone. Làm thế nào để chuyển đổi này để tên thật của nó, có nghĩa là, East Africa Time/EATThời gian Joda - Nhận tên múi giờ?

+2

Không có gì hữu ích trong tài liệu này? http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTimeZone.html – FoolishSeth

+0

@FoolishSeth - sử dụng getName() và getID() của DateTimeZone. Đang thử getNameProvider() ngay bây giờ. –

+0

đánh dấu trang liên kết có liên quan - http://www.dxing.com/utcgmt.htm –

Trả lời

8

Với Joda, người ta có thể có được viết tắt Time-zone hoặc tên như sau

DateTimeZone dz = DateTimeZone.forID("America/New_York"); 
String tzid = dz.getShortName(DateTimeUtils.currentTimeMillis()); 
//tzid will be 'EST' 

String longerTimeZoneName = dz.getName(DateTimeUtils.currentTimeMillis()); 
//longerTimeZoneName will be 'Eastern Standard Time' 
1

tôi đã không thể tìm thấy bất cứ điều gì trong JodaTime để cung cấp cho tên dễ đọc. Theo kinh nghiệm của tôi, DateTimeZone.getName() trả về id thay vì tên hữu ích hơn. Vì vậy, tôi chỉ có thể nhận được "America/New_York", không phải "Giờ chuẩn miền Đông".

Và đề xuất TimeZone.getDisplayName dường như cho rằng bạn đang sử dụng TimeZone từ Java chứ không phải Joda. Tôi thấy không có getDisplayName() cho JodaTime.

Các vấn đề liên quan