gpt4 book ai didi

c# - Convert.ToDateTime() 错误

转载 作者:行者123 更新时间:2023-11-30 20:41:01 25 4
gpt4 key购买 nike

我在尝试将 string 转换为 DateTime 时遇到错误,尽管这在以前一直有效。

这是我使用的程序:

  1. 像这样将日期时间保存到文本文件中:

    DateTime.Now.ToUniversalTime().ToString(); //results in something like this 20.9.2015 10.16.12
  2. 应用加载时:

    string s = streamReader.ReadLine(); //the saved string s = "20.09.2015 10.16.12"
    DateTime d = Convert.ToDateTime(s);

结果是:

String was not recognized as a valid DateTime.

在安装Windows 10和Visual Studio 2015之前,我从来没有遇到过这个问题,我之前的设置是Windows 7和Visual Studio 2013。奇怪的是,这也会导致同样的错误:

DateTime d = Convert.ToDateTime(DateTime.Now.ToUniversalTime().ToString());

这在我之前的设置中确实运行良好,知道为什么它不再运行了吗?

编辑:我相信这个问题不是 Thomas Weller 链接到的问题 Converting a String to DateTime 的重复。由于此问题是预期行为发生变化的结果,请参见第二个示例。我也确实找到了解决这个问题的方法,但它不实用:

    string s = DateTime.Now.ToUniversalTime().ToString(); 
s = s.Substring(0, s.IndexOf(" ")).Replace('.', '/') + s.Substring(s.IndexOf(" ")).Replace('.', ':');
DateTime d = Convert.ToDateTime(s);

最佳答案

由于您在控制面板上的区域设置,这可能不再有效。

为避免与目标环境的区域设置发生冲突,请使用 DateTime.TryParseExact :

string s = streamReader.ReadLine(); //the saved string s = "20.09.2015 10.16.12"
DateTime d = DateTime.Now;
DateTime.TryParseExact(s, "dd.MM.yyyy HH.mm.ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out d);

此外,如果这是您的默认格式并且您需要为整个应用程序使用此格式,you can set the default culture on your config file .

这段代码:

Convert.ToDateTime(DateTime.Now.ToUniversalTime().ToString())

只要没有格式提供程序的 DateTime.ToString() 和 Convert.ToDateTime() 使用相同的 DateTimeFormatInfo,就应该适用于任何环境,除非您在这些调用之间改变您的文化。请注意,没有格式说明符的 DateTime.ToString() will use General date/time pattern (G) , 这是基于 current culture .和没有 FormatProvider 的 Convert.DateTime will use current culture too (在 MSDN 上查看这些引用资料)。

我最后的建议是,除了替换,您还可以:

string s = DateTime.Now.ToUniversalTime().ToString("dd/MM/yyyy HH:mm:ss");

关于c# - Convert.ToDateTime() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32678319/

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