我只是想把一串日期改成DateTime。
但是,当我尝试打印时,它总是说结果是 5/31/2009
8: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);
}
}
}
最佳答案
如果您希望解析的DateTime
不考虑时区,您需要使用DateTimeStyles.None
或DateTimeStyles.AssumeLocal
:
DateTime result = DateTime.ParseExact(text, ShortFormat,
CultureInfo.InvariantCulture,
DateTimeStyles.None);
当您使用 DateTimeStyles.AssumeUniversal
时,会根据计算机时区进行自动时区转换。
参见 the documentation :
AssumeUniversal - If no time zone is specified in the parsed string, the string is assumed to denote a UTC.
关于c# - 在 C# 中格式化日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10583009/