問題タブ [datetimeoffset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - Migrate SQL Server DateTime column to DateTimeOffset
I have an old table with a few rows that has a datetime column. I want to switch this to datetimeoffset
but I want to be able to transfer the data that already exists. So I'm doing something like:
This works but the offset set is 0 when I do the datetime
to datetimeoffset
assignment. Fortunately the offset that I want to set it to is the offset of the current system. I can't seem to figure out an easy way to do this.
I want to be able to set the offset within the conversion. I was going to resort to doing a C# utility(or PowerShell) but I would rather keep it simple.
offset - DateTimeOffset に TimeSpan を追加すると、その TimeZoneInfo に対して無効な UTC オフセットが返される
私は、適切にグローバル化され、利用可能なすべてのタイム ゾーンで動作する必要がある一時的表現ライブラリを構築中です。
さまざまな .Add を使用して移行境界を越えたときに、正しい夏時間 (DST) で DateTimeOffset オブジェクトから調整された日付を取得する方法がわからないため、行き詰まっているようです。日、時間など.
興味深いことに、私はローカル システムのタイム ゾーンの回避策を見つけましたが、同じ戦略を任意のタイム ゾーンに適用する方法を見つけられませんでした。
オフセットによってタイム ゾーン情報を逆引きしようとするスニペットを見つけることができました (ソースを保持していませんでした。申し訳ありません!)。ただし、複数の潜在的な結果があり、それぞれが機能しない DST ルールが異なる可能性があります。(いくつかの最適化が利用できるかもしれませんが、基本前提には欠陥があると思います)
このことを証明するのは少し面倒なので、コアの問題をいくつかのメソッドと単体テストに抽出しました。これにより、私が直面している問題が実証されることを願っています。
nhibernate - SQLite および DateTimeOffset マッピングを使用した単体テスト NHibernate
別の ORM から NHibernate を使用するためのアプリケーションの移植。
インメモリ SQLite データベースに対して単体テストを実行する機能を導入し始めました。これは、テストの最初の数バッチで機能しますが、問題が発生しました。私たちのアプリは実際には SQL 2008 サーバーと通信するため、現在、いくつかのモデルには DateTimeOffset プロパティがあります。テスト以外のアプリケーションで SQL 2008 との間でマッピングする場合、これはすべて正常に機能します。
SQLite テストフィクスチャからセッションを使用すると、DateTimeOffset がよりプラットフォームに依存しない DateTime として「自動的に」処理されるように、データベースまたはその他の機能を構成するメカニズムがありますか?
sql-server-2008 - C# を使用すると DateTimeOffset の精度が失われる
DateTimeOffset(2) 型の CreatedDate フィールドを持つ SQL Server テーブルがあります。
表にあるサンプル値は 2010-03-01 15:18:58.57 -05:00 です。
例として、C# 内からこの値を次のように取得します。
そして、次の値を確認します。
MessageBox.Show(dt.Rows[0][0].ToString());
結果は 2010-03-01 15:18:58 -05:00 で、データベースに格納されている .57 がありません。
ウォッチ ウィンドウで dt.Rows[0][0] を見ると、.57 も表示されないため、切り捨てられているように見えます。
誰かがこれに光を当てることができますか? データベース内の他のレコードと一致させるために日付を使用する必要があり、.57 が必要です。
ありがとう!
ダービス
datetime - 夏時間とタイム ゾーンのベスト プラクティス
この質問とそれに対する回答を、夏時間、特に実際の切り替えに対処するための決定的なガイドにしたいと考えています。
追加するものがあれば、してください
多くのシステムは、正確な時間を維持することに依存しています。問題は、夏時間による時間の変更 (時計を進めたり遅らせたりすること) にあります。
たとえば、受注システムに、注文の時間に依存するビジネス ルールがあります。時計が変わると、ルールが明確でなくなる可能性があります。注文の時間をどのように保持する必要がありますか? もちろん、無限の数のシナリオがあります。これは単なる例示です。
- 夏時間の問題にどのように対処しましたか?
- あなたのソリューションにはどのような仮定が含まれていますか? (ここでコンテキストを探しています)
それほど重要ではありませんが、次のことが重要です。
- 何を試しましたが、うまくいきませんでしたか?
- なぜうまくいかなかったのですか?
プログラミング、OS、データの永続性、およびこの問題のその他の関連する側面に興味があります。
一般的な回答は素晴らしいですが、特に 1 つのプラットフォームでしか利用できない場合は、詳細も確認したいと思います。
entity-framework - Entity Framework 4 は、DateTimeOffset を Visual Studio 2010 の SQL 日時にマップします。
モデル駆動型の設計アプローチで、Visual Studio 2010 RTM と .NET/Entity Framework 4 RTM を使用しています。DateTimeOffset フィールドを持つエンティティを作成すると、EF モデラーは DateTimeOffset を SQL datetimeoffset ではなく SQL datetime にマップしようとします。SQL Server 2008 Express を使用しているため、データベースで datetimeoffset がサポートされています。
Visual Studio で次のエラーが発生します。
エラー 2019: 指定されたメンバー マッピングが無効です。タイプ 'Data.SqlStorage.MyType' のメンバー 'Created' のタイプ 'Edm.DateTimeOffset[Nullable=False,DefaultValue=,Precision=]' は 'SqlServer.datetime[Nullable=False,DefaultValue=,Precision=] と互換性がありませんタイプ 'Data.SqlStorage.Store.MyTypes' のメンバー 'Created' の 3]'
EDMX StorageModels xml セクションでタイプを直接編集すると、次のエラーが発生します。
エラー 40: タイプ datetimeoffset がネームスペースまたはエイリアスで修飾されていません。修飾なしで使用できるのは PrimitiveTypes のみです。
モデラーがこれを SQL の datetimeoffset 型に正しくマップしないのはなぜですか? この問題は、Visual Studio 2010 および .NET Framework 4 のベータ版をまだ使用していたときにも発生しました。
c# - 計算のためにUTC日時を現地時間(TZに基づく)に安全に変換しますか?
@Jon Skeetが私にたくさんの助けをくれた私の最後の質問に続いて(ありがとう!)
UTCとして保存されている日付/時刻を、ローカルの日付/時刻に変換して戻すときに、どうすれば安全に作業できるのか疑問に思っています。
ジョンが私の最後の質問で示したように、使用は瞬間DateTimeOffset
を表し、現地時間が1分後に何を言うかを予測する方法はありません。これらの日時に基づいて計算できる必要があります。
では、データベースから日付を取得し、それらをローカルの日付/時刻に変換して、正確になるように特定の計算を行う場合、どうすれば保証できますか?
シナリオ
私のアプリケーションは、電子メールで送信された情報を記録します。メールを受信した日時が送信時刻として記録されます。メールは交換から引き出されます。
私が知る必要があるのは:
1)これらの電子メールがさまざまな国から送信されている場合Recieved
、電子メールの日付/時刻をUTC形式に変換して保存するだけですか?例えばEmail.Received.ToUniversalTime()
c# - SQL 2008からC#へのDateTimeOffset値の取得
タイプがRecDateというフィールドを持つSQL2008テーブルがありますDateTimeOffset
。
特定のレコードの値は「2010-04-0117:19:23.62-05:00」です。
C#では、DataTableを作成し、次の結果を入力します。
ミリ秒を取得する必要がありますが、次の場合、ミリ秒は常に0です。
RecDate列の値をDTO変数に取得する適切な方法は何ですか?
c# - DateTimeOffset を Twitter の日付/時刻に変換するにはどうすればよいですか?
DateTimeOffset.Now
をtwitter互換の日付/時刻に変換するにはどうすればよいですか?
ツイッターの例:
乾杯 :)
c# - TimeZoneInfo を使用して夏時間中に現地時間を取得する方法は?
私はDateTimeOffset
、どのタイムゾーンでも特定の瞬間を伝えるために使用しようとしています。TimeZoneInfo
夏時間に対処するために使用する方法がわかりません。
これは出力します:
私は中央時間帯にいて、現在は夏時間です。2行目を読み取ろうとしています:
BaseUtcOffset
DSTに基づいて変更されないようです。
適切なオフセット値で適切な時間を取得するにはどうすればよいですか?