当前位置:  开发笔记 > 编程语言 > 正文

转换为datetime和从datetime转换一小时?

如何解决《转换为datetime和从datetime转换一小时?》经验,为你挑选了1个好方法。

我在写一个相当大的web应用asp.net/c#MSSQL 2008 r2服务数据库.该程序需要转换date/time(ISO日期格式)字符串DateTime在使用它们的后来存储smalldatetimesql.

当字符串转换为时datetimes,hour会神秘地添加到结果中.据我所知,在英国,我们需要夏令时(目前有效),但datetime.convert方法肯定能理解这一点吗?转换回字符串时,结果符合预期.

我写了一个小程序来说明问题(也包括我的理智的非ISO日期):

class Program
{


    static void Main(string[] args)
    {
        //BB();
        //Dist();
        DateTime d1 = new DateTime();
        DateTime d2 = new DateTime();
        string d1s = "2010-09-13T09:30:01Z";
        string d2s = "2010-09-13 09:30:01";

        d1 = Convert.ToDateTime(d1s);
        d2 = Convert.ToDateTime(d2s);

        Console.WriteLine("d1s:{0} d1:{1} ", d1s, d1);
        Console.WriteLine("d2s:{0} d2:{1} ", d2s, d2);

        d1s = d1.ToString("u"); d2s = d2.ToString("u");

        Console.WriteLine("\nd1: {0}", d1s);
        Console.WriteLine("d2: {0}", d2s);

        d1 = Convert.ToDateTime(d1s);
        d2 = Convert.ToDateTime(d2s);

        Console.WriteLine("\nd1s:{0} d1:{1} ", d1s, d1);
        Console.WriteLine("d2s:{0} d2:{1} ", d2s, d2);

        Console.Read();
    }
}

以下是我运行程序时得到的结果:

d1s:2010-09-13T09:30:01Z d1:13/09/2010 10:30:01
d2s:2010-09-13 09:30:01 d2:13/09/2010 09:30:01

d1: 2010-09-13 10:30:01Z
d2: 2010-09-13 09:30:01Z

d1s:2010-09-13 10:30:01Z d1:13/09/2010 11:30:01
d2s:2010-09-13 09:30:01Z d2:13/09/2010 10:30:01
Done

这是正确的行为吗?我是个白痴吗?我原本期望将datetime转换为字符串,然后返回到datetime的确切字符串将返回原始输入.如果这是正确的行为,有关如何获得一致结果但仍在使用的任何想法Convert.ToDateTime()

非常感谢.



1> Martin Harri..:

日期时间结束时的"Z"表示"Zulu"(相当于UTC/GMT).默认情况下,当您将字符串转换为其末尾的字符串时,它会将其转换为本地时间(在您的情况下为+ 1小时).

没有'Z'.NET将假设日期已经是正确的格式而不是添加小时.

将日期时间格式化为字符串时,您使用的格式字符串为"U".这告诉.NET它是UTC时间,应该格式化.因此它将'Z'添加到最后.当您将其转换回日期时间时,会添加另一个小时以使其成为本地日期.

澄清:

d1:以UTC字符串开头 - >本地时间(+ 1小时) - > UTC字符串 - >本地时间(+1小时)

d2:作为本地字符串开始 - >本地时间(无更改) - > UTC字符串 - >本地时间(+ 1小时)

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有