ASP.NET DateTime无法正确转换

use*_*331 1 c# asp.net datetime

我这个约会在这里:

DateTime RelevantDate = new DateTime(2017, 11, 13, 16, 0, 0, 0);

            request.RelevantDate = Convert.ToDateTime(RelevantDate.ToString("o"));
Run Code Online (Sandbox Code Playgroud)

我期待着:

2017-11-13T16:00:00-05:00

相反,我得到:

2017-11-13T16:00:00

这真的需要采用以下格式:2017-11-13T16:00:00-05:00,我该怎么做?request.RelevantDate期待DateTime

如果我这样做:

request.RelevantDate = Convert.ToDateTime(DateTime.Now.ToString("o"));
Run Code Online (Sandbox Code Playgroud)

它给了我正确的格式:

2017-11-08T06:43:39-05:00

Dir*_*irk 6

如果DateTime使用此构造函数创建其Kind属性Unspecified,即它既不是本地也不是UTC.

DateTime.Now返回一个对象DateTimeKind.Local,这就是将时区添加到输出的原因.ToString("o").

你可以使用另一个构造函数,你可以明确地设置类型Local,例如new DateTime(2017, 11, 13, 16, 0, 0, 0, DateTimeKind.Local).

这样,时区将出现在输出中.ToString("o").