java - How to parse time zone string "Pacific Time (US & Canada)" on JVM? -
i'm writing integration yammer , returns time zone string looks this:
pacific time (us & canada)
how 1 parse timezone or datetimezone on jvm? i've tried timezone.gettimezone , datetimezone.forid no avail.
it appear yammer returns timezone
field part of user
object in rest api. example can seen part of the authorization docs in response body in section labeled "c. app authentication", , looks like:
{ "user": { "timezone": "hawaii", "interests": null, "type": "user", ...
this returned of get /users/...
apis. experimenting, can see value returned api corresponds keys of drop-down list appears in user account settings screen (found @ https://yammer.com/<your domain>/account/display_options
) :
when view source of web page, can see drop-down list of keys , values:
<select id="meta_user_timezone" name="meta_user[timezone]"><option value="hawaii">(gmt-10:00) hawaii</option> <option value="alaska">(gmt-09:00) alaska</option> <option value="pacific time (us & canada)" selected="selected">(gmt-08:00) pacific time (us & canada)</option> <option value="arizona">(gmt-07:00) arizona</option> <option value="mountain time (us & canada)">(gmt-07:00) mountain time (us & canada)</option> <option value="central time (us & canada)">(gmt-06:00) central time (us & canada)</option> <option value="eastern time (us & canada)">(gmt-05:00) eastern time (us & canada)</option> <option value="indiana (east)">(gmt-05:00) indiana (east)</option><option value="" disabled="disabled">-------------</option> <option value="american samoa">(gmt-11:00) american samoa</option> <option value="international date line west">(gmt-11:00) international date line west</option> <option value="midway island">(gmt-11:00) midway island</option> <option value="tijuana">(gmt-08:00) tijuana</option> <option value="chihuahua">(gmt-07:00) chihuahua</option> <option value="mazatlan">(gmt-07:00) mazatlan</option> <option value="central america">(gmt-06:00) central america</option> <option value="guadalajara">(gmt-06:00) guadalajara</option> <option value="mexico city">(gmt-06:00) mexico city</option> <option value="monterrey">(gmt-06:00) monterrey</option> <option value="saskatchewan">(gmt-06:00) saskatchewan</option> <option value="bogota">(gmt-05:00) bogota</option> <option value="lima">(gmt-05:00) lima</option> <option value="quito">(gmt-05:00) quito</option> <option value="caracas">(gmt-04:30) caracas</option> <option value="atlantic time (canada)">(gmt-04:00) atlantic time (canada)</option> <option value="georgetown">(gmt-04:00) georgetown</option> <option value="la paz">(gmt-04:00) la paz</option> <option value="newfoundland">(gmt-03:30) newfoundland</option> <option value="brasilia">(gmt-03:00) brasilia</option> <option value="buenos aires">(gmt-03:00) buenos aires</option> <option value="greenland">(gmt-03:00) greenland</option> <option value="santiago">(gmt-03:00) santiago</option> <option value="mid-atlantic">(gmt-02:00) mid-atlantic</option> <option value="azores">(gmt-01:00) azores</option> <option value="cape verde is.">(gmt-01:00) cape verde is.</option> <option value="casablanca">(gmt+00:00) casablanca</option> <option value="dublin">(gmt+00:00) dublin</option> <option value="edinburgh">(gmt+00:00) edinburgh</option> <option value="lisbon">(gmt+00:00) lisbon</option> <option value="london">(gmt+00:00) london</option> <option value="monrovia">(gmt+00:00) monrovia</option> <option value="utc">(gmt+00:00) utc</option> <option value="amsterdam">(gmt+01:00) amsterdam</option> <option value="belgrade">(gmt+01:00) belgrade</option> <option value="berlin">(gmt+01:00) berlin</option> <option value="bern">(gmt+01:00) bern</option> <option value="bratislava">(gmt+01:00) bratislava</option> <option value="brussels">(gmt+01:00) brussels</option> <option value="budapest">(gmt+01:00) budapest</option> <option value="copenhagen">(gmt+01:00) copenhagen</option> <option value="ljubljana">(gmt+01:00) ljubljana</option> <option value="madrid">(gmt+01:00) madrid</option> <option value="paris">(gmt+01:00) paris</option> <option value="prague">(gmt+01:00) prague</option> <option value="rome">(gmt+01:00) rome</option> <option value="sarajevo">(gmt+01:00) sarajevo</option> <option value="skopje">(gmt+01:00) skopje</option> <option value="stockholm">(gmt+01:00) stockholm</option> <option value="vienna">(gmt+01:00) vienna</option> <option value="warsaw">(gmt+01:00) warsaw</option> <option value="west central africa">(gmt+01:00) west central africa</option> <option value="zagreb">(gmt+01:00) zagreb</option> <option value="athens">(gmt+02:00) athens</option> <option value="bucharest">(gmt+02:00) bucharest</option> <option value="cairo">(gmt+02:00) cairo</option> <option value="harare">(gmt+02:00) harare</option> <option value="helsinki">(gmt+02:00) helsinki</option> <option value="istanbul">(gmt+02:00) istanbul</option> <option value="jerusalem">(gmt+02:00) jerusalem</option> <option value="kyiv">(gmt+02:00) kyiv</option> <option value="pretoria">(gmt+02:00) pretoria</option> <option value="riga">(gmt+02:00) riga</option> <option value="sofia">(gmt+02:00) sofia</option> <option value="tallinn">(gmt+02:00) tallinn</option> <option value="vilnius">(gmt+02:00) vilnius</option> <option value="baghdad">(gmt+03:00) baghdad</option> <option value="kuwait">(gmt+03:00) kuwait</option> <option value="minsk">(gmt+03:00) minsk</option> <option value="moscow">(gmt+03:00) moscow</option> <option value="nairobi">(gmt+03:00) nairobi</option> <option value="riyadh">(gmt+03:00) riyadh</option> <option value="st. petersburg">(gmt+03:00) st. petersburg</option> <option value="volgograd">(gmt+03:00) volgograd</option> <option value="tehran">(gmt+03:30) tehran</option> <option value="abu dhabi">(gmt+04:00) abu dhabi</option> <option value="baku">(gmt+04:00) baku</option> <option value="muscat">(gmt+04:00) muscat</option> <option value="tbilisi">(gmt+04:00) tbilisi</option> <option value="yerevan">(gmt+04:00) yerevan</option> <option value="kabul">(gmt+04:30) kabul</option> <option value="ekaterinburg">(gmt+05:00) ekaterinburg</option> <option value="islamabad">(gmt+05:00) islamabad</option> <option value="karachi">(gmt+05:00) karachi</option> <option value="tashkent">(gmt+05:00) tashkent</option> <option value="chennai">(gmt+05:30) chennai</option> <option value="kolkata">(gmt+05:30) kolkata</option> <option value="mumbai">(gmt+05:30) mumbai</option> <option value="new delhi">(gmt+05:30) new delhi</option> <option value="sri jayawardenepura">(gmt+05:30) sri jayawardenepura</option> <option value="kathmandu">(gmt+05:45) kathmandu</option> <option value="almaty">(gmt+06:00) almaty</option> <option value="astana">(gmt+06:00) astana</option> <option value="dhaka">(gmt+06:00) dhaka</option> <option value="novosibirsk">(gmt+06:00) novosibirsk</option> <option value="urumqi">(gmt+06:00) urumqi</option> <option value="rangoon">(gmt+06:30) rangoon</option> <option value="bangkok">(gmt+07:00) bangkok</option> <option value="hanoi">(gmt+07:00) hanoi</option> <option value="jakarta">(gmt+07:00) jakarta</option> <option value="krasnoyarsk">(gmt+07:00) krasnoyarsk</option> <option value="beijing">(gmt+08:00) beijing</option> <option value="chongqing">(gmt+08:00) chongqing</option> <option value="hong kong">(gmt+08:00) hong kong</option> <option value="irkutsk">(gmt+08:00) irkutsk</option> <option value="kuala lumpur">(gmt+08:00) kuala lumpur</option> <option value="perth">(gmt+08:00) perth</option> <option value="singapore">(gmt+08:00) singapore</option> <option value="taipei">(gmt+08:00) taipei</option> <option value="ulaan bataar">(gmt+08:00) ulaan bataar</option> <option value="osaka">(gmt+09:00) osaka</option> <option value="sapporo">(gmt+09:00) sapporo</option> <option value="seoul">(gmt+09:00) seoul</option> <option value="tokyo">(gmt+09:00) tokyo</option> <option value="yakutsk">(gmt+09:00) yakutsk</option> <option value="adelaide">(gmt+09:30) adelaide</option> <option value="darwin">(gmt+09:30) darwin</option> <option value="brisbane">(gmt+10:00) brisbane</option> <option value="canberra">(gmt+10:00) canberra</option> <option value="guam">(gmt+10:00) guam</option> <option value="hobart">(gmt+10:00) hobart</option> <option value="magadan">(gmt+10:00) magadan</option> <option value="melbourne">(gmt+10:00) melbourne</option> <option value="port moresby">(gmt+10:00) port moresby</option> <option value="solomon is.">(gmt+10:00) solomon is.</option> <option value="sydney">(gmt+10:00) sydney</option> <option value="vladivostok">(gmt+10:00) vladivostok</option> <option value="new caledonia">(gmt+11:00) new caledonia</option> <option value="auckland">(gmt+12:00) auckland</option> <option value="fiji">(gmt+12:00) fiji</option> <option value="kamchatka">(gmt+12:00) kamchatka</option> <option value="marshall is.">(gmt+12:00) marshall is.</option> <option value="wellington">(gmt+12:00) wellington</option> <option value="nuku'alofa">(gmt+13:00) nuku'alofa</option> <option value="samoa">(gmt+13:00) samoa</option> <option value="tokelau is.">(gmt+13:00) tokelau is.</option></select>
the question how translate these? well, don't have hard proof, appear these time zone keys partial bits of windows time zone display names. they're not distinct identifiers in windows, or microsoft technology. puzzled why yammer choose these time zone ids. way go follows:
look @ cldr windows zone mapping file. you'll see entries such as:
<!-- (utc-08:00) pacific time (us & canada) --> <mapzone other="pacific standard time" territory="001" type="america/los_angeles"/> <mapzone other="pacific standard time" territory="ca" type="america/vancouver america/dawson america/whitehorse"/> <mapzone other="pacific standard time" territory="mx" type="america/tijuana"/> <mapzone other="pacific standard time" territory="us" type="america/los_angeles"/> <mapzone other="pacific standard time" territory="zz" type="pst8pdt"/> <!-- (utc-07:00) arizona --> <mapzone other="us mountain standard time" territory="001" type="america/phoenix"/> <mapzone other="us mountain standard time" territory="ca" type="america/dawson_creek america/creston"/> <mapzone other="us mountain standard time" territory="mx" type="america/hermosillo"/> <mapzone other="us mountain standard time" territory="us" type="america/phoenix"/> <mapzone other="us mountain standard time" territory="zz" type="etc/gmt+7"/> <!-- (utc-07:00) chihuahua, la paz, mazatlan --> <mapzone other="mountain standard time (mexico)" territory="001" type="america/chihuahua"/> <mapzone other="mountain standard time (mexico)" territory="mx" type="america/chihuahua america/mazatlan"/>
search yammer time zone key in comment lines, partial substring match. example, if yammer time zone
"la paz"
, match entry comment<!-- (utc-07:00) chihuahua, la paz, mazatlan -->
take iana time zone id next line following comment. 1 marked
territory="001"
. wanttype
field. previous example,"america/chihuahua"
.you can use id in java of standard java 7 or java 8 apis (or joda time).
one last point. checked (via users api) timezone
setting of many people in own yammer network know in other time zones, , few had ever changed time zone "pacific time (us & canada)"
default setting. therefore, suspicious trust these values accurate. far can tell, there's nothing force yammer user change setting default, , have go out of way it.
Comments
Post a Comment