0

DateTimeをUTCから現地時間に変換する必要があります。そのために、TimeZoneInfoIsInValidTimeメソッドを使用して現地時間に変換する前に日時を検証しました。

特定の日時に無効な日時が表示されます。この日付を有効な日付に変換するにはどうすればよいですか?

サンプルコードは次のとおりです。

_timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
var dateTime = "10/03/2013 2:12:00 AM";
DateTime universalFormatDateTime = Convert.ToDateTime(dateTime).GetUniversalFormatDateTime();
if (_timeZoneInfo.IsInvalidTime(universalFormatDateTime)) Console.Write("Invalid DateTime\n");
4

3 に答える 3

1

どのフレームワークを使用していますか?

ToUniversalTime()は正しい選択ではありませんか?

DateTime universalFormatDateTime = Convert.ToDateTime(dateTime).ToUniversalTime()
于 2013-03-25T09:50:09.923 に答える
0

日時のDateTimeKindを指定する必要があります。検証を実行する前に、これを追加します。

universalFormatDateTime = DateTime
   .SpecifyKind(universalFormatDateTime,DateTimeKind.Local);
于 2013-03-25T09:41:19.487 に答える
0

私はこれがあなたが達成しようとしていることだと思います:

_timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
var dateTime = "10/03/2013 2:12:00 AM";
DateTime universalFormatDateTime = Convert
                                  .ToDateTime(dateTime, new CultureInfo("en-GB"))
                                  .ToUniversalTime();
if (_timeZoneInfo.IsInvalidTime(universalFormatDateTime))
    Console.WriteLine("Invalid DateTime");
else
    Console.WriteLine("Valid DateTime");

今後の参考のために、 Convert.ToDateTimeアーティクを見ることができます。

于 2013-03-25T09:48:55.097 に答える