UTC で日時を保存する際に問題に直面しています。その後、ユーザーからの入力として日時を取得して、その日時の UTC 値をデータベースに保存したいと考えています。ユーザーから日時入力値を取得するために、1 つのテキスト ボックス (正確な日付を取得するため) と 1 つのドロップダウンリスト (その日付の時間を取得するため) を使用しています。以下は、両方のコントロール値を結合した後、ユーザーから正確な入力日時を取得するコードです。like: 日付として 25/12/2011、両方の値を結合した後の時間として 10 時間 日付の値は 25/12/2011 10:00 AM です。彼の計算では、以下のコードを使用しています。
string[] dateArray = HdnDPC_date1.Value.Split('/');
string dtt = dateArray[1] + "/" + dateArray[0] + "/" + dateArray[2];
var fdate = Convert.ToDateTime(dtt);
DateTime dadate = new DateTime(Convert.ToInt32(dateArray[2]), Convert.ToInt32(dateArray[1]), Convert.ToInt32(dateArray[0]));
dadate = Convert.ToDateTime(fdate).AddHours(deadlineHr);
以下のコードは、日時の値を UTC に変換するために使用されます
DateTime DeadLine = TimeZoneInfo.ConvertTimeToUtc(dadate);
しかし、コードはタイムゾーンに従って入力日時を変換していません。常に「中央タイムゾーン、米国およびカナダ」 に従って変換されますが、ユーザーのタイムゾーンに従ってその日時を変換したいです。
この問題が発生した理由を特定するのを手伝ってください。