0

アプリケーションで、ユーザーが送信した日時を utc に変換しています。

TimeZoneInfo.ConvertTimeToUtc(DateTime.Parse(model.SessionEnd))

私もこのようなことを試しました

combinedDateTime = DateTime.SpecifyKind(combinedDateTime, DateTimeKind.Utc);

私のコンピューターでWebアプリを実行している場合、どちらも完全に機能します。サーバーにアップロードしてそこから試すとすぐに、時刻が変換されず、入力したのと同じ日時が返されます。デバッグステートメントも更新されているかどうかを確認したので、クラスライブラリが最新バージョンで正しくロードされていると確信しています。これはサーバーの設定ですか、それともこれを修正するために私ができることですか?

4

2 に答える 2

2

唯一の適切な方法は、クライアント コードに時間/日付の値をタイムゾーンとともに送信させることです。通常、クライアントでの UTC への変換は合理的であり、JavaScript でもサポートされています (まだ timzone が好きな場合は、 getTimeZoneOffset を使用してください)。同じ文字列 (2013-03-11T03:52Z) に対して複数の意味を持たない、よく知られている並べ替え可能な形式として、UTC (Z) タイムゾーンで ISO8601 としてフォーマットされた日時値を投稿することをお勧めします。

タイムゾーンなしで明示的に時間が必要な場合があることに注意してください(私の時間の午前9時に起床するなど)-ユースケースが何であるかを必ず理解してください。

于 2013-03-11T22:52:13.590 に答える
1

クライアントがクライアント側から日時を文字列として投稿する場合、次のことができます。

1.)クライアント側で時間をUTCに変換できます(Alexei Levenovの回答のように)

2.)クライアントの時間をサーバーに渡し、サーバー側でタイムゾーンを変換できます

3.) クライアント側で時刻を UTC に変換し、サーバー側でタイムゾーンを送信できます

必要に応じて、これらのいずれかを選択できます。3番目は、後でサーバー側でタイムゾーンを使用したい場合にのみ役立ちます。

于 2013-03-12T00:17:56.310 に答える