好的,假设有以下JSON解析字符串UTC时间:
2012-11-29 17:00:34 UTC
现在如果我想将这个UTC时间转换为本地时间,我该怎么做?
如何将其格式化为其他形式,例如yyyy-MM-dd HH:mm:ss z
?
date.toString('yyyy-MM-dd HH:mm:ss z');
从来没有起作用:/
好的,假设有以下JSON解析字符串UTC时间:
2012-11-29 17:00:34 UTC
现在如果我想将这个UTC时间转换为本地时间,我该怎么做?
如何将其格式化为其他形式,例如yyyy-MM-dd HH:mm:ss z
?
date.toString('yyyy-MM-dd HH:mm:ss z');
从来没有起作用:/
尝试:
var date = new Date('2012-11-29 17:00:34 UTC');
date.toString();
Date
原型上没有一种方法以本地时间而非 GMT/UTC 返回日期对象似乎有些愚蠢。 - oldboyvar offset = new Date().getTimezoneOffset();
offset
是指本地时间和 UTC 之间的时间差,单位为分钟。如果要从 UTC 日期中获取本地时间,则需要从日期中减去这个时间差。
utc_date.setMinutes(utc_date.getMinutes() - offset);
+
是正确的。当使用date.getTimezoneOffset
时,"从getTimezoneOffset()返回的负值表示当前位置比UTC超前,而正值则表示该位置落后于UTC"(来源:Tech Republic)。 - WebWanderer+
是不正确的。从 getTimezoneOffset()
返回的值是您需要 添加到本地时间以到达 UTC 的值。因此,如果您想从 UTC 转换为本地时间,则操作应该是 -
。基本上,这个答案与请求相反,从本地时间转换为 UTC。 - Guy Passy这里是另一种选项,使用toLocaleString()
输出 mm/dd/yy:
const date = new Date('2012-11-29 17:00:34 UTC');
date.toLocaleString();
//output 11/29/2012
toLocaleString
将使用本地时区,但您也可以提供选项以获取不同的时区或显示格式。有关详细信息,请参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString。 - Mat Schaffer要格式化日期,请尝试以下函数:
var d = new Date();
var fromatted = d.toLocaleFormat("%d.%m.%Y %H:%M (%a)");
// d = "2021-09-23T15:51:48.31"
console.log(new Date(d + "z").toLocaleDateString()); // gives 9/23/2021
console.log(new Date(d + "z").toLocaleString()); // gives 9/23/2021, 10:51:48 AM
console.log(new Date(d + "z").toLocaleTimeString()); // gives 10:51:48 AM
let now = date.format(new Date(), 'YYYY-MM-DD HH:mm:ss', true);
console.log(now);
<script src="https://cdn.jsdelivr.net/npm/date-and-time/date-and-time.min.js"></script>
toUTC
函数,在大多数主要浏览器上都可以工作,并以ISO格式返回时间。这应该可以工作。
var date = new Date('2012-11-29 17:00:34 UTC');
date.toString()
这适用于 Chrome 和 Firefox。
未在其他浏览器上测试。
const convertToLocalTime = (dateTime, notStanderdFormat = true) => {
if (dateTime !== null && dateTime !== undefined) {
if (notStanderdFormat) {
// works for 2021-02-21 04:01:19
// convert to 2021-02-21T04:01:19.000000Z format before convert to local time
const splited = dateTime.split(" ");
let convertedDateTime = `${splited[0]}T${splited[1]}.000000Z`;
const date = new Date(convertedDateTime);
return date.toString();
} else {
// works for 2021-02-20T17:52:45.000000Z or 1613639329186
const date = new Date(dateTime);
return date.toString();
}
} else {
return "Unknown";
}
};
// TEST
console.log(convertToLocalTime('2012-11-29 17:00:34 UTC'));
/*
* convert server time to local time
* simbu
*/
function convertTime(serverdate) {
var date = new Date(serverdate);
// convert to utc time
var toutc = date.toUTCString();
//convert to local time
var locdat = new Date(toutc + " UTC");
return locdat;
}
new Date("2012-11-29 17:00:34 UTC")
将会显示为使用该页面的客户端的本地时间。 - Esailija