c# - 在 C# 中处理 UTC 时间?

标签 c# sql-server datetime date

我不是 C# 内部专家,所以这个问题实际上可能非常愚蠢。如果是这样,请纠正我。我从 SQL 服务器中取出了一些数据(UTC 格式)。

2011-03-26 11:03:58.000
2011-03-26 11:04:25.000
...

我在 C# 中解析此文件并使用以下内容:

DateTime date = DateTime.Parse(value);

将值提取到 DateTime 对象中。现在,我从这个时间减去 6 小时的任意时间,如下所示:

date = date.Subtract(new TimeSpan(6, 0, 0));

最后,我将其写回到另一个文件中,如下所示:

output.WriteLine(date.ToString("yyyy-MM-dd HH:mm:ss.fff"));

因为我没有做任何隐式转换,所以输出也是UTC。我的问题是,在解析日期上是否允许这种时间加法/减法,或者我是否需要在能够操纵时间之前进行一些 UTC 到 C# 的特定转换?我很难解决这个问题。有人可以澄清一下吗?

编辑:尝试写一个简洁的问题 原始日期为 UTC。我想加/减一些时间并用 UTC 写回。我想知道我是否可以直接操作解析的日期,或者我需要做一些转换,即明确告诉 C# 日期是 UTC 格式,然后操作它,然后再次告诉它写回 UTC 日期。

最佳答案

这并不重要。日期就是日期,无论它位于哪个时区。除非您将其转换为不同的时区,否则 .Net 不知道也不关心它是哪个时区。

如果需要,可以调用 DateTime.SpecifyKind(value, DateTimeKind.Utc)

关于c# - 在 C# 中处理 UTC 时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6366091/

相关文章:

java - 使用 joda time 播种然后比较

javascript - 如何使用 JavaScript/Jquery 从字符串中获取所有日期和时间?

c# - 从 TypeBuilder.CreateType 返回的类型的 Activator.CreateInstance 抛出 ArgumentException

sql-server - 聚集索引寻求性能不佳?

c# - 在 GridView 中,我的 Roe 未更新或删除

sql-server - 性能星型模式(BI)

sql - SQL Server 中的 SYSNAME 数据类型是什么?

python - 如何解析超过一个月长度的天数?

c# - OpenNETCF:可以免费使用吗?

c# - 教 ANN 如何添加