2017-04-24 47 views
0

錯誤的時間考慮:新的日期()在Node.js的

[email protected]:/firma/Exotech/heart-beat/heart-beat-service# date 
Mon Apr 24 17:07:52 CEST 2017 
[email protected]:/firma/Exotech/heart-beat/heart-beat-service# node test.js 
2017-04-24T15:07:56.271Z 
[email protected]:/firma/Exotech/heart-beat/heart-beat-service# cat test.js 
console.log(new Date()) 
[email protected]:/firma/Exotech/heart-beat/heart-beat-service# 

正如你所看到的,服務器日期17:07,但新的日期()將返回15:07。如何使用服務器的日期設置更正我的Node.js?

+1

第一個在你的本地時區,第二個是UTC。 – JohnnyHK

回答

1

如果你想UTC日期,您可以: 1)手動減少的小時數(不推薦) 2)使用一個lib,做適合您(如moment.js我建議,但這是opiniated,所以你應該如你所願地做)

+0

你認爲這個解決方案會給我的問題: now = _ => Date(new Date()。toLocaleString()) – user2386092

+0

這取決於..如果你只是想打印一個字符串,然後是toLocaleString就足夠了 但如果你想工作在新創建的日期對象,然後到LocaleString是不夠的,因爲它將它轉換成一個字符串,而不是DateObject – Amine

2

第一個,即Linux日期命令給出你的系統的日期。 第二個根據UTC標準給出時間標準,它是全球民用時間和時區的基礎。

+0

你認爲這個解決方案會給我的問題: now = _ => Date(new Date ().toLocaleString()) – user2386092