【问题标题】:Datetime in isoformat in JavascriptJavascript中iso格式的日期时间
【发布时间】:2012-06-25 10:51:53
【问题描述】:

在 Python 我有这个代码:

now =  datetime.now().isoformat()
if "." not in now:
  now = now + ".000000"

我可以在 Javascript 中实现相同的结果吗?

生成的日期时间应与此掩码 %Y-%m-%dT%H:%M:%S.%f 匹配,因为日期时间将保存到数据库中,然后我需要使用此掩码从 Python 代码中检索它。

【问题讨论】:

  • 如果您向我们展示了预期的结果会有所帮助...不过,您可能对以下内容感兴趣:blog.stevenlevithan.com/archives/date-time-format
  • @JMax "ISO 格式" 是众所周知的,并且定义明确。
  • 我很好奇你为什么有if "." not in now 支票?是否存在iso格式不返回.的情况?
  • @BurhanKhalid 好点。之前也有过这样的情况,但是没有从 datetime.now() 中检索到,并且经常丢失.something 部分。也许我现在可以省略它(我不确定)。

标签: javascript python datetime date time


【解决方案1】:

您是否查看过Date.toISOString() - 生成 ISO 8601 日期的标准函数?

这是一个 Chrome 控制台测试:

> (new Date()).toISOString()
"2012-06-25T10:55:19.833Z"

请注意,上面的链接包含一个 shim,它为尚未拥有此功能的浏览器添加了对此功能的支持。

【讨论】:

  • @InternalServerError 如果您查看我包含的链接,MDN 站点包含适用于旧浏览器的 shim。
  • 感谢您的回答,实际上我在 Firefox 扩展中使用它,所以其他解决方案更适合我的需要。
  • @xralf 您应该使用标准功能,并在不可用时对其进行填充。
  • @Alnitak 但我最后没有Z 字母。 Python 省略了 Z 字母。
  • 那么就对它执行.substring(-1) - Z 后缀是 ISO 8601 格式的一部分。
【解决方案2】:

页面上的最后一个示例:https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference:Global_Objects:Date

/* use a function for the exact format desired... */
function ISODateString(d){
 function pad(n){return n<10 ? '0'+n : n}
 return d.getUTCFullYear()+'-'
  + pad(d.getUTCMonth()+1)+'-'
  + pad(d.getUTCDate())+'T'
  + pad(d.getUTCHours())+':'
  + pad(d.getUTCMinutes())+':'
  + pad(d.getUTCSeconds())+'Z'}

var d = new Date();
console.log(ISODateString(d)); // prints something like 2009-09-28T19:03:12Z

【讨论】:

  • 如果你更喜欢 jquery...你去plugins.jquery.com/project/jquery-dateFormat
  • 看起来不错,我只删除了Z 字母,我也可以得到微秒吗?在我的面具中是.%f 部分。
  • 或者我将它与.000000 字符串连接,以获得正确的格式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-28
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多