gpt4 book ai didi

c# - 将 String 转换为 DateTime 时的奇怪行为

转载 作者:太空宇宙 更新时间:2023-11-03 22:03:38 24 4
gpt4 key购买 nike

我在将 String 转换为 DateTime 然后再转换为 ToString() 时遇到奇怪的行为。

Convert.ToDateTime("16-02-2012").ToString("MM/dd/yyyy") 结果为 02-16-2012Convert.ToDateTime("16-02-2012").ToLongDateString() 结果为 16。 2012 年 2 月

如您所见,在使用 ToLongDateString() 时转换是正确的,但在使用 ToString() 时/以某种方式转换为 -。

当我将第一个结果插入 Excel 工作表时,值实际上是 '02-16-2012(注意开头的 ')

当我使用第一段小于 12 的日期时,结果包含预期的/但恢复为 dd/MM/yyyy。

我在转换 ToDateTime() 时尝试使用 new System.Globalization.CultureInfo("da-DK", false) 但没有效果(我们的系统已经设置为 da-DK -但我很绝望)。

有人以前见过这种行为吗?

编辑

为了稍微澄清一下我的帖子,丹麦语的日期格式是 dd-mm-yyyy(我想将其格式设置为 mm/dd/yyyy)——我知道英文日期的第一部分是月份。

最佳答案

改变

Convert.ToDateTime("16-02-2012").ToString("MM/dd/yyyy")

Convert.ToDateTime("16-02-2012").ToString("dd/MM/yyyy")

这只是一个错字。


如果这不是你想要的,试试这个:

DateTime.Parse("16-02-2012", CultureInfo.CreateSpecificCulture("da-DK"));

然后你可以在最后添加你想要的任何.ToString(...)


编辑 2:您的计算机正在以您自己的文化输出日期。如果您希望它被正确解析显示,您需要为每个操作提供文化信息。

Console.WriteLine(DateTime.Parse("16-02-2012", CultureInfo.CreateSpecificCulture("da-DK")).ToString(CultureInfo.CreateSpecificCulture("da-DK")));
// 16-02-2012 00:00:00

关于c# - 将 String 转换为 DateTime 时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9212020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com