2009-10-26 6 views
2

좋아,이 질문은 간단한 질문 일지 모르지만 사전에 감사의 도움을 줄 수있는 사람에게는 아직 해결 방법이 없다.웹 응용 프로그램의 정확한 시간 (일광 절약 시간)을 유지하는 방법은 무엇입니까?

다음과 같은 경우를 생각해 볼 수 있습니다. 우리는 사용자가 지정한 시간에 전자 메일을 보내는 응용 프로그램과 같이 시간 의존형 인 MySQL에서 실행되는 웹 응용 프로그램을 가지고 있습니다 (필요한 경우). 이제 모든 사용자는 적절한 시간대/도시를 설정했으며 서버는 단순화를 위해 UTC로 실행됩니다. 정확한 시간은 서버 시간 + 표준 시간대 + 일광 절약 시간입니다. 사용자는 자신의 시간 인 2010 년 1 월 4 일 오후 5시에 이메일이 도착하기를 원합니다. 제 질문은 올바른 일광 절약 시간제를 얻는 방법일까요? 해당 사용자가 DST를 준수하는 지역의 사용자입니까? 그렇다면 DST를 관찰했거나 아직 관찰하지 않았습니까?

첫 번째 충동은 현재의 시간대/도시에서 주어진 일광 절약 시간을 제공하는 웹 서비스를 찾는 것입니다. 지금까지 나는 그것을 발견하지 못했다. 두 번째 아이디어로 인해 DST에 대한 규칙을 설정해야한다는 점에 실망합니다. 이러한 변경은 해마다 변경되고 일부 국가에서는 하루 또는 이틀 이상 이루어지지 않습니다.

도움을 주시면 감사하겠습니다.

+0

어떤 프로그래밍 언어를 사용하고 있습니까? 많은 사람들이 로케일 기능을 내장하고 있습니다 ... – Artelius

+0

내 돈이 PHP에 있습니다! –

+0

실제로 Common Lisp (SBCL은 정확함)을 사용하고 있지만 유감스럽게도 언어가 일광 절약 시간을 말할 수없는 이유를 알 수 없습니다. 예를 보여주기 위해, 이집트는 라마단 (음력에 기초한 한 달)의 시작 부분에 법으로 일광 절약 시간제를 적용했기 때문에 이전에 예측하기가 매우 어려웠습니다. – Mackram

답변

1

경우에, 당신은 스스로 규칙을 프로그램 할 필요가 없습니다. zoneinfo 데이터베이스에 대한 지원을 프로그램하기 만하면됩니다.

+0

와 동일하지 않아야합니다. Jason에게 존 정보 데이터베이스를 가리키는 데 도움을 주셔서 감사합니다. 일부 서버를 쿼리 할 수 ​​있기를 원했기 때문에 나는 희망했지만, 솔루션은 첫 번째 서버를 찾을 수 없다는 점을 고려할 때 충분합니다. – Mackram

+0

Common Lisp에 관심이있는 분들은 zoneinfo에 대한 지원을 제공하는 현지 시간 라이브러리 (현재 SBCL에서 테스트 됨)에 대해 배웠다는 것을 지적하고 싶습니다. – Mackram

0

데이터베이스에 1970 년 1 월 1 일 GMT 이후로 날짜를 초로 저장하면 항상 처리 할 시간이 있습니다. 사용자가 시간을 입력하면 올바른 시간대 설정을 사용하여 적절하게 변환하면 완료됩니다.

서버가 이미 시간대없이 실행 중이므로 시간이되면 쉽게 선택됩니다.

여기 LISP에서 시간대 변환을 할 some code있어 : 프로그래밍 언어 공상 시간대 논리를 지원하지 않습니다

+0

그는 올바른 시간대 설정을 얻는 방법을 묻는 것을 제외하고 ... –

+0

예, mysql 비트가 날 버렸습니다. 많은 사람들이 int 대신 DateTime으로 날짜를 표시하는 경향이 있으며 (11) 수많은 DST 문제. –

+0

나는 당신의 제안을 이해하지만 제이슨이 지적했듯이 GMT 타이밍으로 이동하려면 미래의 사용자 시간이 일광 절약 시간에 적용되는지 아니면 기본적으로 원래의 질문인지 아닌지를 알아야합니다. 그러나 다르게 요구됩니다. 또한 사이드 노트에서 decode-universal-time 함수는 서버의 시계 및 DST 설정에 따라 달라집니다. 우리의 질문 목적은 사용자의 – Mackram

관련 문제