私は、ページ(AngularJS 1.4.0)に表示している日付(UTCミリ秒単位)を持っており、ユーザーはタイムゾーンに関係なく東部時間に表示したいと考えています自分のコンピュータに設定します。夏時間に合わせて調整する日付フィルタ
私は日付フィルタを使用しています、とdocumentationから私は、フォーマットに使用する
$filter('date')(date, format, timezone)
タイムゾーンを参照してください。それは、UTC/GMTと米国大陸の標準時間帯の略語を理解していますが、一般的には、
'+0430'
(グリニッジ子午線の東に4時間30分)のタイムゾーンオフセットを使用してください。利用される。
私は
{{ record.Timestamp | date:'HH:mm:ss.sss':'EST' }}
のようなものを使用し、私は期待どおり、それは時間を書き込むと、今日からタイムスタンプを使用して、私はDSTの周り移動したときに、私は時間でオフになるだろうと思います。私は'EDT'
と指定することもできますが、それは1時間前に時間がぶつかるでしょうが、私が使用できるタイムゾーンの省略形は "Eastern"を意味し、日付自体を使ってESTかEDTを使用するかどうかを判断できますか?あるいは、日付に応じて-0500/ESTか-0400/EDTのどちらかで日付を調べてオフセットを作成する必要がありますか? (それはtimezone
のように見えますが、文字列ではなく、関数であるため、自動検出が複雑になります)。
誰もがディスプレイをESTまたはEDTのいずれかにハードコーディングしたいとは思わないでしょう - DSTに合わせてタイムゾーンを調整するほうがはるかに可能です。
問題は、夏時間が普遍的に観察されないことです。それ以外の場合は、1月と7月にDateから 'getTimezoneOffset()'をチェックし、現在の日付のオフセットを比較し、 'EDT'または' EST'を適切に使用することができます。しかし、コードがアリゾナやハワイなどで動くなら、それはうまくいかないでしょう。 –
元の問題よりも私の可能な回避策に問題があるように思えます。私はおそらく、DSTを決定するためにそのようなものを試しているだろう、そして今はそれらの分野のユーザーはいないだろうが、決して_ _ never say _ _ ... – Danny
あなたの "オリジナルの問題"と思われるものに依存する:)。私にとって、実際の問題は、日付フィルタが、より標準的な[IANAリスト](https://www.iana.org/time-zones/repository/tz-link.html)の代わりに米国時間帯略語を使用していることです。 DSTは指定されていません。私はMomentJSに関するYaserの答えに同意します。 –