【问题标题】:Is there a way to print a calculated time format string in C#?有没有办法在 C# 中打印计算的时间格式字符串?
【发布时间】:2012-05-23 06:43:15
【问题描述】:

我知道标题可能令人困惑,但我不知道如何更好地表达它......

我这样做是为了获取当前小时的日志:

'TraceSink-'yyyy-MM-dd HH'-Hourly.log'

我怎样才能得到前一小时?即:

'TraceSink-'yyyy-MM-dd (HH-1)'-Hourly.log'

这样的时间格式有什么可能吗?

编辑:我无法访问 C# 代码,但我可以在其中更改里面的内容。

Like var on DateTime.ToString(var);

我是不是要求太多了?

【问题讨论】:

    标签: c# .net datetime time datetime-format


    【解决方案1】:

    从日期/时间中减去一小时并格式化

    【讨论】:

    • String.Format("TraceSink-{0}-Hourly.log", someDateTime.AddHours(-1).ToString("yyyy-MM-dd HH"));
    • @ChaseFlorell:您可以在格式字符串中指定 DateTime 的格式 - 无需单独调用 ToString。
    • 我只能访问 ToString 函数内部的变量。就像 DateTime.ToString(var); 上的 var -也许我要求太多了?
    • 你要求的是你不能用 forat 字符串做的事情。
    【解决方案2】:

    您的问题的答案是

    格式字符串只定义格式。它没有能力对其进行计算(为什么会这样?)

    【讨论】:

    • 可能对它做梦太多了。无论如何,谢谢。
    【解决方案3】:

    我不知道您为什么有此要求,但我怀疑您可能正在从另一个时区的机器接收 DateTime 对象...如果您在格式字符串中包含与 UTC 的偏移量可能会有所帮助:

    http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx#zSpecifier

    这样,当您看到日志时,您可以知道特定事件发生在 UTC -3 小时。

    我认为这是您在不访问原始代码的情况下所能做的最好的事情。

    【讨论】:

      猜你喜欢
      • 2020-07-19
      • 2010-10-31
      • 1970-01-01
      • 2020-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-30
      • 1970-01-01
      相关资源
      最近更新 更多