3

ユーザーが DateTime と、日付を変換する必要があるタイムゾーンと、終了日の形式を入力するコードがあります。以下はコードです。

このコードは、DateTime をユーザーが入力したタイムゾーンに完全に変換しますが、Datetime をフォーマットする場合、日時オフセット値は常にシステムのタイム ゾーン オフセットにデフォルト設定されます。たとえば、日付 2014-10-30T08:01:01-06:00(中央時間) を太平洋標準時間に変換してフォーマットします。結果は 2014-10-30T06:01:01**-06:00** であり、2014-10-30T01:01:01**-08:00** である必要があります。オフセット値はデフォルトでシステムのタイムゾーンに設定されますこれは中央時間です。

    DateTime inputtime;
    string TimezoneID;
    String outputdateformat;
inputtime = "2014-10-30T08:01:01-05:00"
TimezoneID ="Pacific Standard Time".
Outputdateformat ="yyyy-MM-ddThh:mm:ss zz"

DateTime finaloutputtime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(inputtime,TimezoneID);

string FinalFormattedDate =finaloutputtime.toString(outputdateformat);

4

2 に答える 2

1

これを処理するDateTimeOffset代わりに使用できます。DateTime

            DateTimeOffset time = DateTime.Now;
            string timezoneID = "Pacific Standard Time";
            TimeZoneInfo info = TimeZoneInfo.FindSystemTimeZoneById(timezoneID);

            DateTimeOffset newTIme = TimeZoneInfo.ConvertTime(time, info);


            string timeformat = newTIme.ToString("yyyy-MM-dd HH:mm:ss \"GMT\"zzz");
            string oldtimeformat = time.ToString("yyyy-MM-dd HH:mm:ss \"GMT\"zzz");
于 2015-04-29T16:22:32.753 に答える