【问题标题】:How to Convert solr date to javascript date?如何将 solr 日期转换为 javascript 日期?
【发布时间】:2017-04-15 16:44:40
【问题描述】:

我在“2016-11-17T09:22:24Z”中有时间,我需要将其转换为 “2016-11-1709:22:24”。只需要从 solr Date 中删除 T 和 Z,我需要在该日期添加 330 分钟并显示它

【问题讨论】:

  • 按照问题的标题,他实际上需要一个Javascript日期,对吧?

标签: java solr datetime-conversion


【解决方案1】:

首先我们可以从字符串构造一个javascript日期对象,然后你可以将它转换成正确的格式:

var dt = new Date('2016-11-17T09:22:24Z')
var formattedDate = dt.toISOString().substring(0, 19).replace('T', '')

console.log(formattedDate) 应该记录2016-11-1709:22:24

或者在一行中:

new Date('2016-11-17T09:22:24Z').toISOString().substring(0, 19).replace('T', '')

将渲染:2016-11-1709:22:24

这里有更多好的讨论:Convert javascript to date object to mysql date format (YYYY-MM-DD)

【讨论】:

  • JavaScript 实际上并没有特定的日期格式。您当前的 Solr 日期格式足以让 Javascript 理解。例如:new Date('2016-11-17T09:22:24Z') 将给出一个 JavaScript 日期。
  • 但是当我将格式化日期转换为日期时,它显示的日期无效
  • 新日期(格式化日期);这显示了无效日期的错误
  • formattedDate 已经是一个日期对象。您不必转换它。我正在更新答案,以向您展示一个单一的解决方案,以防万一它对您有所帮助。
  • 我还需要添加 330 分钟,如何添加?
【解决方案2】:
var userdate = new Date("2009-1-1T8:00:00Z");
var timezone = userdate.getTimezoneOffset();
var serverdate = new Date(userdate.setMinutes(userdate.getMinutes()+parseInt(timezone)));

这将为您提供正确的 UTC 日期和时间。 这是因为 getTimezoneOffset() 将以分钟为单位为您提供时区差异。我建议您不要使用 toISOString() 因为输出将在字符串中因此将来您将无法操纵日期

【讨论】:

    猜你喜欢
    • 2020-03-19
    • 2019-06-14
    • 2010-12-18
    • 2021-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多