다른 시간을위한 타임 스탬프의 로컬 타임을 결정하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1638579

  •  08-07-2019
  •  | 
  •  

문제

UTC 타임 스탬프를 얻었고 다른 시간을 전시하고 싶습니다.

어쩌면 예를 들어 내가하려는 일을 명확히 할 수 있습니다.

타임 스탬프가 주어졌습니다 1259431620000 그 시간을 표시해야합니다.

애틀랜타 13:07

샌프란시스코 10:07

런던 17:07

시드니 04:07

도시는 변할 수도 있지만 내가 찾고있는 것을 얻는 것 같아요.

일광 절약을 다루는 JavaScript 라이브러리 또는 일반적인 솔루션이 있습니까?

나는 모두 준비된 모든 시간대 목록을 가지고 있습니다.

일광 절약은 쉽고 일반적인 문제이므로 라이브러리 나 스크립트가있을 수 있다고 생각했습니다.

시간대 테이블에서 흥미로운 경우 :

* GMT -11:00
      o Apia
      o Midway
      o Niue
      o Pago Pago
* GMT -10:00
      o Fakaofo
      o Hawaii Time
      o Johnston
      o Rarotonga
      o Tahiti
* GMT -09:00
      o (GMT-09:30) Marquesas
      o Alaska Time
      o Gambier
* GMT -08:00
      o Pacific Time
      o Pacific Time - Tijuana
      o Pacific Time - Vancouver
      o Pacific Time - Whitehorse
      o Pitcairn
* GMT -07:00
      o Mountain Time - Dawson Creek
      o Mountain Time (America/Denver)
      o Mountain Time - Edmonton
      o Mountain Time - Hermosillo
      o Mountain Time - Chihuahua, Mazatlan
      o Mountain Time - Arizona
      o Mountain Time - Yellowknife
* GMT -06:00
      o Belize
      o Central Time
      o Costa Rica
      o El Salvador
      o Guatemala
      o Managua
      o Central Time - Mexico City
      o Central Time - Regina
      o Central Time (America/Tegucigalpa)
      o Central Time - Winnipeg
      o Easter Island
      o Galapagos
* GMT -05:00
      o Bogota
      o Cayman
      o Grand Turk
      o Guayaquil
      o Havana
      o Eastern Time - Iqaluit
      o Jamaica
      o Lima
      o Eastern Time - Montreal
      o Nassau
      o Eastern Time
      o Panama
      o Port-au-Prince
      o Eastern Time - Toronto
* GMT -04:00
      o (GMT-04:30) Caracas
      o Anguilla
      o Antigua
      o Aruba
      o Asuncion
      o Barbados
      o Boa Vista
      o Campo Grande
      o Cuiaba
      o Curacao
      o Dominica
      o Grenada
      o Guadeloupe
      o Guyana
      o Atlantic Time - Halifax
      o La Paz
      o Manaus
      o Martinique
      o Montserrat
      o Port of Spain
      o Porto Velho
      o Puerto Rico
      o Rio Branco
      o Santiago
      o Santo Domingo
      o St. Kitts
      o St. Lucia
      o St. Thomas
      o St. Vincent
      o Thule
      o Tortola
      o Palmer
      o Bermuda
      o Stanley
* GMT -03:00
      o Newfoundland Time - St. Johns
      o Araguaina
      o Buenos Aires
      o Salvador
      o Belem
      o Cayenne
      o Fortaleza
      o Godthab
      o Maceio
      o Miquelon
      o Montevideo
      o Paramaribo
      o Recife
      o Sao Paulo
      o Rothera
* GMT -02:00
      o Noronha
      o South Georgia
* GMT -01:00
      o Scoresbysund
      o Azores
      o Cape Verde
      o Abidjan
* GMT 00:00
      o Accra
      o Bamako
      o Banjul
      o Bissau
      o Casablanca
      o Conakry
      o Dakar
      o El Aaiun
      o Freetown
      o Lome
      o Monrovia
      o Nouakchott
      o Ouagadougou
      o Sao Tome
      o Danmarkshavn
      o Canary Islands
      o Faeroe
      o Reykjavik
      o St Helena
      o GMT (no daylight saving)
      o Dublin
      o Lisbon
      o London
* GMT +01:00
      o Algiers
      o Bangui
      o Brazzaville
      o Ceuta
      o Douala
      o Kinshasa
      o Lagos
      o Libreville
      o Luanda
      o Malabo
      o Ndjamena
      o Niamey
      o Porto-Novo
      o Tunis
      o Windhoek
      o Amsterdam
      o Andorra
      o Central European Time
      o Berlin
      o Brussels
      o Budapest
      o Copenhagen
      o Gibraltar
      o Luxembourg
      o Madrid
      o Malta
      o Monaco
      o Oslo
      o Paris
      o Rome
      o Stockholm
      o Tirane
      o Vaduz
      o Vienna
      o Warsaw
      o Zurich
* GMT +02:00
      o Blantyre
      o Bujumbura
      o Cairo
      o Gaborone
      o Harare
      o Johannesburg
      o Kigali
      o Lubumbashi
      o Lusaka
      o Maputo
      o Maseru
      o Mbabane
      o Tripoli
      o Amman
      o Beirut
      o Damascus
      o Gaza
      o Jerusalem
      o Nicosia
      o Athens
      o Bucharest
      o Chisinau
      o Helsinki
      o Istanbul
      o Moscow-01 - Kaliningrad
      o Kiev
      o Minsk
      o Riga
      o Sofia
      o Tallinn
      o Vilnius
* GMT +03:00
      o Addis Ababa
      o Asmera
      o Dar es Salaam
      o Djibouti
      o Kampala
      o Khartoum
      o Mogadishu
      o Nairobi
      o Syowa
      o Aden
      o Baghdad
      o Bahrain
      o Kuwait
      o Qatar
      o Riyadh
      o Moscow+00
      o Antananarivo
      o Comoro
      o Mayotte
      o (GMT+03:30) Tehran
* GMT +04:00
      o Baku
      o Dubai
      o Muscat
      o Tbilisi
      o Yerevan
      o Moscow+01 - Samara
      o Mahe
      o Mauritius
      o Reunion
      o (GMT+04:30) Kabul
* GMT +05:00
      o Aqtau
      o Aqtobe
      o Ashgabat
      o Dushanbe
      o Karachi
      o Tashkent
      o Moscow+02 - Yekaterinburg
      o Kerguelen
      o Maldives
      o (GMT+05:30) India Standard Time
      o (GMT+05:30) Colombo
      o (GMT+05:45) Katmandu
* GMT +06:00
      o Mawson
      o Vostok
      o Almaty
      o Bishkek
      o Dhaka
      o Moscow+03 - Omsk, Novosibirsk
      o Thimphu
      o Chagos
      o (GMT+06:30) Rangoon
      o (GMT+06:30) Cocos
* GMT +07:00
      o Davis
      o Bangkok
      o Hovd
      o Jakarta
      o Moscow+04 - Krasnoyarsk
      o Phnom Penh
      o Hanoi
      o Vientiane
      o Christmas
* GMT +08:00
      o Casey
      o Brunei
      o Choibalsan
      o Hong Kong
      o Moscow+05 - Irkutsk
      o Kuala Lumpur
      o Macau
      o Makassar
      o Manila
      o China Time - Beijing
      o Singapore
      o Taipei
      o Ulaanbaatar
      o Western Time - Perth
* GMT +09:00
      o Dili
      o Jayapura
      o Pyongyang
      o Seoul
      o Tokyo
      o Moscow+06 - Yakutsk
      o Palau
      o (GMT+09:30) Central Time - Adelaide
      o (GMT+09:30) Central Time - Darwin
* GMT +10:00
      o Dumont D'Urville
      o Moscow+07 - Yuzhno-Sakhalinsk
      o Eastern Time - Brisbane
      o Eastern Time - Hobart
      o Eastern Time - Melbourne, Sydney
      o Guam
      o Port Moresby
      o Saipan
      o Truk
* GMT +11:00
      o Moscow+08 - Magadan
      o Efate
      o Guadalcanal
      o Kosrae
      o Noumea
      o Ponape
      o (GMT+11:30) Norfolk
* GMT +12:00
      o Moscow+09 - Petropavlovsk-Kamchatskiy
      o Auckland
      o Fiji
      o Funafuti
      o Kwajalein
      o Majuro
      o Nauru
      o Tarawa
      o Wake
      o Wallis
* GMT +13:00
      o Enderbury
      o Tongatapu
      o Kiritimati

미리 감사드립니다

도움이 되었습니까?

해결책

시간대 정보에 대한 포괄적 인 소스는 다음과 같습니다 올슨 목록. 유닉스 세계에서 널리 사용되며 예를 들어 파이썬에서도 제공됩니다. pytz. 누군가가 만든 것 같습니다 일부 코드 언급 한 바와 같이 JavaScript로도 사용할 수 있습니다. 더 오래된 질문.

이것은 당신이 찾고있는 것과 거의 정확히 일하는 것 같습니다;)

다른 팁

조금 길지만 이것은 아마도 작동 해야하는 것처럼 보입니다 ...

http://www.onlineaspect.com/2007/06/08/auto-detect-aime-zone-with-javaScript/

Timezone은 기본적으로 정수를 추가하기 때문에 UTC 시간에서 현지화 된 시간으로 번역하는 것은 사소한 일입니다.

그래서 당신이 정말로 필요한 것은 모든 도시/국가와 각각의 시간대의 목록이라고 생각합니다 ...? 아니면 내가 오해하고 있습니까?

정확히 무엇을 달성해야합니까?

DST 시간 규칙은 끊임없이 변하고 일부 국가에서는 매년 변경됩니다. 이 접근 방식을 서버 측면을 해결하려고 노력하지만 가능하지 않은 경우 AJAX를 사용하여 서버로 다시 호출하여 사용자의 현재 시간 또는 DST 오프셋을 얻는 것을 고려합니다. 자신의 시간대 및 구역 규칙 변경 목록을 유지하는 것은 특히 배치 해야하는 경우 번거 로울 것입니다. 그러나 영역 규칙 데이터베이스가 있으면 실제로 라이브러리를 구현하는 것은 사소해야합니다.

여기에 매우 부자가 있습니다 자바 스크립트 라이브러리 'datejs' - 일광 절약을 지원합니다.

http://www.datejs.com/

시간을 UTC로 표시하고 이와 같은 것을 제공 할 수 있습니다.

2010-01-01 00:00 (UTC) 현지에서 시간을 얻으십시오

www.worldtimeserver.com에 위치를 지정하기 위해 소비 할 수있는 서비스가없는 것 같습니다. 따라서 사용자가 자신의 선택을 선택해야합니다. Time Zone 데이터베이스를 구독 할 수 있지만 연간 $ 400입니다.

당신이 요구하는 것은 일광 절약 시간 규칙 목록 인 것 같습니다. 따라서 DST를 관찰하는 국가 목록과이를 관찰하는 방법은 다음과 같습니다.

http://www.timeanddate.com/time/dst2009.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top