c# - 在 C# 中转换日期

标签 c# asp.net datetime

我有一个 ASP.NET MVC 应用程序无法正确转换日期值。我住在一个时区。我的用户驻留在另一个。此时,假设我有以下字符串:

var date = "7/1/2014 4:00:00 AM +00:00";

我正在使用以下方法将此字符串转换为 DateTime:

DateTime temp;
if (DateTime.TryParse(date, out temp))
{
    temp = temp.ToShortDateString();
    WriteToLog(temp);
}

当 temp 写入日志文件时,我看到它被写为 6/30/2014。什么可能导致这个?我期待 7/1/2014。它适用于我的机器。但是,它无法在我的用户计算机上运行。

最佳答案

答案是时区。您正在解析特定时间点(格林威治标准时间凌晨 4:00)。这与前一天中部标准时间晚上 10:00 相同。

如果您将其保存为 UTC:

var s = temp.ToUniversalTime().ToShortDateString();

您将获得请求的输出。

关于c# - 在 C# 中转换日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30605396/

相关文章:

c# - Linq Asp.net代码优化

c# - 如何使用 C# 解码 URL 参数?

java - 如何在 Java 中使用 AM/PM 获取时间戳

c# - 从原始波形数据中检测特定频率/音调

c# - 数据注释/验证和动态值

c# - 如何在一个 Controller 中使用 .net Core 创建几个 url

c# - ASP.NET 5 中的路由前缀

c# - 如何从异步方法返回对象 (c# - xamarin.forms)?

用于获取日期范围的 perl 子例程

javascript - Perl DateTime的纪元是毫秒还是秒?