フリート管理では、トラッカーはタイムゾーンを越えて移動し、その位置を常に UTC のタイムスタンプで保存します。1 つのタイムゾーンに固執する必要があるため、これは良いことです。そうしないと、タイムゾーンを変更すると、同じタイムスタンプを持つ 2 つの異なる位置を持つ可能性があります(i.e. for daylight saving time).
フリート マネージャーが私のソフトウェアを使用してデータを確認する場合、タイムスタンプが混在している場合でも、ローカル タイムゾーンで時刻を確認したいと考えています (理由はわかります)。
これを実現するために、データベースに UTC 時間として保存し、表示時に現地時間に変換します。私が使う:
DateTime.SpecifyKind(date, dateTimeKind)
DateTime.ToUniversalTime()
DateTime.ToLocalTime()
したがって、誰もが最高潮のハマグリと同じくらい幸せになるはずですが、一部のテーブルは DataGridView の DataSource として設定されています(Windows.System.Forms.DataGridView.DataSource = System.Data.DataTable)
。これ自体は悪くありませんが、その間に変換を入れる方法がわかりません。
表示するタイムゾーンを示すために .Format プロパティを使用できればDataGridViewCellStyle
幸いですが、私が理解している限り、これはオプションではありません。現在、一部のテーブルでは両方の時間がデータベースに保存されているため、ユーザーはどちらの時間を表示/非表示にするかを決定しますがDateTime
、データベースのすべての列を2倍にして表示/非表示機能を配置する必要がある場合、これは本当に面倒ですその次。
あなたはどの方法を提案しますか?RowCreatedEvent
(ここ)について読みましたが、Web アプリケーションを構築していません。