我的 C# 应用程序必须从 MySQL 数据库中读取一些日期。我遇到的问题是日期格式取决于系统本地化设置。
我的问题是,无论本地化设置如何,我是否可以始终以 yyyy-MM-dd hh:mm:ss 和 yyyy-MM-dd 格式获取日期。
提前致谢!
最佳答案
如果您将日期存储为真实的日期或日期时间值,您的应用程序将取回原始二进制数据,并且在您创建日期值的字符串表示之前不会对其进行本地化。我的猜测是您正在查看调试器中的值或使用 Console.WriteLine(theValue);
,这将使用当前语言环境。将非字符串值转换为字符串时,始终包含所需的格式和/或所需的区域性。
如果您将日期存储为字符串,您将始终必须确切地知道进入数据库的格式。
假设日期存储为 date
或 datetime
:按原样处理值,不要将它们转换为字符串,直到需要将它们显示给一个用户:
DateTime theValue = theReader.GetDateTime(fieldOrdinal);
var theValueAsText = theValue.ToString(CultureInfo.InvariantCulture);
var specificTextRepr = theValue.ToString("yyyy-MM-dd HH:mm:ss");
theValueAsText
变量将是一个与特定区域性无关的字符串表示形式。 specificTextRepr
将是您的特定文本表示。
关于c# - 如何在没有本地化的情况下在 C# 中获取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8787777/