【问题标题】:Moment.js: Convert UTC date from database into local timeMoment.js:将 UTC 日期从数据库转换为本地时间
【发布时间】:2014-07-23 03:09:51
【问题描述】:

我正在尝试使用 moment.js 在客户端转换我的日期。我将给出确切的规格。

日期在 C# 中使用 DateTime.UtcNow 存储在服务器上。它们被保存到数据库中,如下所示:2014-06-02 21:37:40.087,因此大约是 UTC 时间晚上 9:37。我在美国西海岸,因此转换为太平洋标准时间下午 2:37。

当从应用层读取此行并以 JSON 格式发送到浏览器时,它会解析为此字符串 "2014-06-03T04:37:40.087Z"

它在数据库中的存储方式与它在 JSON 文本中的输出方式有何差异?

【问题讨论】:

    标签: c# javascript json datetime momentjs


    【解决方案1】:

    看起来即使您在存储 UTC 值,但在从数据库中检索这些值时,您并没有将其视为UTC。确保您的 C# DateTime 值在阅读后具有 DateTimeKind.Utc,使用 DateTime.SpecifiyKind

    如果您想用一些额外的细节来编辑您的问题,例如所涉及的具体代码,那么我可能能够提供更清晰的答案。

    【讨论】:

    • 马特你完全正确。从数据库中检索日期时,我在将它们发送到浏览器之前没有使用DateTime.SpecifyKind()。你知道有什么方法可以为整个应用程序设置默认的“类型”的 DateTime UTC,或者这是不可能的?
    • 不,这是不可能的。每个DateTime 值都是独立的。您可能希望阅读What's Wrong with DateTime AnywayMore Fun with DateTimeThe Case Against DateTime.Now。您也可以考虑将Noda Time 作为替代方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 2021-03-26
    • 2023-01-14
    • 2011-02-21
    • 1970-01-01
    相关资源
    最近更新 更多