我不是 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/