相关疑难解决方法(0)

Cache.Add绝对到期 - 是否基于UTC?

对于实施例Cache.Add使用DateTime.Now.Add来计算到期,即,其通过:

 DateTime.Now.AddSeconds(60)
Run Code Online (Sandbox Code Playgroud)

作为absoluteExpiration参数的值.

我认为相对计算它DateTime.UtcNow会更正确[因为如果夏令时在现在和到期点之间的间隔开始时没有歧义].

在介绍之前DateTimeKind,我已经猜到缓存管理中有一些丑陋的黑客攻击,如果时间不是UTC时间,它可以做一些合适的事情.

在.NET 2.0及更高版本中,我猜测它应该正确处理DateTime计算,DateTime.UtcNow.AddSeconds(60)因为它必须DateTime.Kind在推理中用作输入.

多年来我一直在自信地使用它DateTime.UtcNow作为基础,但是没有能够提出这样的理由:如果没有任何指出文档在4年多的时间里一直存在误导性,这绝对是正确的做法.

问题?

  1. 尽管有很多bingage和谷歌搜索我没能从MS找到任何权威的讨论 - 任何人都可以找到关于这个的东西吗?
  2. 是否有任何理由使用UtcNow更加正确和/或安全?

(是的,我可以仔细阅读源和/或反射器的来源,但我正在寻找一个完整的逐个打击的低点!)

.net asp.net datetime utc system.web.caching

35
推荐指数
2
解决办法
8431
查看次数

为什么DateTime.Now.Subtract(DateTime.UtcNow)不是(接近)零?

如果我尝试:

DateTime.Now.Subtract(DateTime.UtcNow)
Run Code Online (Sandbox Code Playgroud)

我希望结果非常接近于零.但它不是,相反,它是时区差异,在我的情况下,-4小时.有一个.Kind - DateTime知道时区是不同的.为什么不为我追踪这个?是否有正确使用Kind的Subtract的味道?

(作为参考,可以在以下网址看到每个输出的详细信息:https://stackoverflow.com/a/3229429/237091)

.net c#

3
推荐指数
1
解决办法
1706
查看次数

标签 统计

.net ×2

asp.net ×1

c# ×1

datetime ×1

system.web.caching ×1

utc ×1