Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 转换无效的日期时间_C#_Timezone - Fatal编程技术网

C# 转换无效的日期时间

C# 转换无效的日期时间,c#,timezone,C#,Timezone,我需要将日期时间从UTC转换为本地时间,因为我在使用TimeZoneInfo IsInValidTime方法转换为本地时间之前已经验证了日期时间 我得到一个特定日期时间的无效日期时间,如何将此日期转换为有效日期 以下是示例代码: _timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); var dateTime = "10/03/2013 2:12:00 AM"; DateTime universa

我需要将日期时间从UTC转换为本地时间,因为我在使用TimeZoneInfo IsInValidTime方法转换为本地时间之前已经验证了日期时间

我得到一个特定日期时间的无效日期时间,如何将此日期转换为有效日期

以下是示例代码:

_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");

您应该指定日期时间的日期时间种类。在执行验证之前添加以下内容:

universalFormatDateTime = DateTime
   .SpecifyKind(universalFormatDateTime,DateTimeKind.Local);

我想这就是你想要达到的目标:

_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");

您可以查看文章以备将来参考。

您使用的是什么框架

ToUniversalTime()不是正确的选择吗

DateTime universalFormatDateTime = Convert.ToDateTime(dateTime).ToUniversalTime()

DateTime
的结果值是多少?转换使用的文化是什么(日期不明确-可能是3月10日或10月3日,具体取决于文化)。您想要的结果确实不清楚。如果给定的本地日期/时间由于被跳过而无效,您希望发生什么?(请注意,Noda Time使您更容易说出希望发生什么;)@Arshad:不,这是将UTC转换为本地,这与夏令时转换没有相同的问题。
GetUniversalFormatDateTime
不是
DateTime
实例的方法。如何编译上述代码?GetUniversalFormatDateTime是我的方法<代码>公共静态类DateTimeExtensions{public静态日期时间GetUniversalFormatDateTime(this DateTime DateTime){返回新的日期时间(dateTime.Year,dateTime.Month,dateTime.Day,dateTime.Hour,dateTime.Minute,dateTime.Second,DateTimeKind.Utc);}