【问题标题】:Convert mm/dd/yyyy to JsonDate format [duplicate]将 mm/dd/yyyy 转换为 JsonDate 格式 [重复]
【发布时间】:2012-01-29 07:35:23
【问题描述】:

可能重复:
Converting .NET DateTime to JSON

如何将“mm/dd/yyyy hh:mm:ss”格式的日期值转换为“/Date(1324414956395)/”格式(Json Date)。

我将日期格式“mm/dd/yyyy hh:mm:ss”传递给 MVC 控制器操作方法,我需要将其与代码中 JsonDate 格式的另一个日期进行比较。 感谢您的帮助。

【问题讨论】:

  • 不是JSONDate,是时间戳!
  • 查看 Jeff Meatball Yang 的回答:stackoverflow.com/questions/1016847/…
  • @Bakudan-ханювиги 好的.. 在这种情况下,我将时间戳存储在 Json 文档中。你知道如何将 mm/dd/yyyy 转换为那种时间戳格式吗?
  • @keyboardP 该链接谈到将 TimeStamp "/Date(1324414956395)/" 转换为 mm/dd/yyyy .. 我想反过来。请阅读原始帖子。谢谢
  • @ZVenue - Jeff Meatball Yang 的方法采用 DateTime 对象(作为扩展方法)并将其转换为双精度。它不会从 double 转换为 mm/dd/yyyy。

标签: c# asp.net json date


【解决方案1】:

dt.ToUniversalTime() 在使用DateTime? 时将无法识别。 DateTime? 本质上是 Nullable<DateTime>。您需要做的是使用Value 属性来检索DateTime 对象

 dt.Value.ToUniversalTime();

然后,您可以将 this post 中的代码(Jeff Meatball Yang 的答案,而不是接受的答案)与您可以为空的 DateTime 一起使用。

【讨论】:

    【解决方案2】:

    (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;

    或者

    来自此链接的卓越解决方案:Converting .NET DateTime to JSON

    DateTime d1 = new DateTime(1970, 1, 1);
        DateTime d2 = dt.ToUniversalTime();
        TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
        return ts.TotalMilliseconds;
    

    但是,这似乎是比较日期的一种不好的方法。这基本上是计算自 1970 年(或其他)以来的滴答声,并且将是一个相当长且准确的数字。即使您需要确保日期匹配到一秒,将所有通用时间转换为 mm/dd/yyyy 格式然后在该点进行比较似乎会更容易。

    【讨论】:

    • 但是 JavaScript 时间戳的纪元是 01/01/1970。除非您从 DateTime.Now 中减去该偏移量,否则这将不起作用。
    • @Chase:我如何在特定日期执行此操作.. 而不是“现在”
    • @JimMischel - 没错。您可以使用 1970 年的实际值或我从其他人那里链接的更具可读性的解决方案来抵消它。
    • @Chase 我无法识别 dt.ToUniversalTime()。我有“使用系统”命名空间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 2012-05-05
    • 2019-05-15
    • 2018-08-11
    • 2016-12-16
    • 2021-11-22
    相关资源
    最近更新 更多