在C#中格式化日期时间

3

我只想将一个日期字符串更改为DateTime类型。

但是,当我尝试打印时,它总是显示结果为5/31/20098:00:00 AM

有任何想法为什么会发生这种情况吗?

namespace Test
{
    class Test
    {
        static void Main()
        {
            Parse("5/31/2009 12:00:00 AM" );
        }

        static readonly string ShortFormat = "M/d/yyyy hh:mm:ss tt";

        static readonly string[] Formats = { ShortFormat };

        static void Parse(string text)
        {
            // Adjust styles as per requirements
            DateTime result = DateTime.ParseExact(text, ShortFormat,
                                                  CultureInfo.InvariantCulture,
                                                  DateTimeStyles.AssumeUniversal);
            Console.WriteLine(result);
            Console.WriteLine(result);
        }
    }
}

我认为你需要使用 M/dd/yyyy 的日期格式,注意日期是两位数。 - V4Vendetta
6
似乎没有回答的人注意到输出比输入晚了4小时。 - Oded
1
你所在的时区是什么?你编写的代码默认使用的是UTC。 - David Brabant
6个回答

4

如果您不想考虑时区,请使用DateTimeStyles.NoneDateTimeStyles.AssumeLocal,以使解析的DateTime不考虑时区:

DateTime result = DateTime.ParseExact(text, ShortFormat,
                                      CultureInfo.InvariantCulture,
                                      DateTimeStyles.None);

当您使用DateTimeStyles.AssumeUniversal时,会自动针对计算机时区进行时区转换。
参见文档

AssumeUniversal-如果解析的字符串中没有指定时区,则假定该字符串表示UTC。


不知道谁给踩了,但真遗憾唯一一个正确理解问题的答案被踩了!(顺便给你点个赞。) - Dan Puzey
当然,被接受的答案比第一个答案更好...哈哈 - ABH
@hamad - 当然是的。特别是如果第一个答案没有回答问题。 - Oded

2
我认为你需要使用 MM/dd/yyyy hh:mm:ss tt 的日期格式。

1
为了以指定的格式打印DateTime,您需要使用ToString方法。就像这样。
result.ToString("M/d/yyyy hh:mm:ss tt");

第二个参数(format)定义了字符串(S)必须符合的格式才能进行解析。

0

所有的日期时间格式都在这里这里进行了描述。你应该使用

static readonly string ShortFormat = "MM/dd/yyyy hh:mm:ss tt";

3
如果你要向某人指引文档,请至少将他们指向这个文档。 - user672118

0

将shortformat更改为

static readonly string ShortFormat = "MM/dd/yyyy hh:mm:ss tt";

你的字符串代表这个意思

"05/31/2009 12:00:00 AM"
"MM/dd/yyyy hh:mm:ss tt"

上面的数字对应下面的格式


0

这取决于你所在的时区,我认为你的时区是GMT+4而不是bukko回答的GMT-4。 无论如何,只需使用:

DateTimeStyles.AssumeLocal

改为:

DateTimeStyles.AssumeUniversal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接