如何将日期字符串转换为没有时区的日期对象

Posted

技术标签:

【中文标题】如何将日期字符串转换为没有时区的日期对象【英文标题】:How to convert a datestring to date object without timezone 【发布时间】:2016-12-08 23:29:14 【问题描述】:

我想将日期字符串 '03/08/2016' 转换为不带时区的日期对象。

convertToDateFormat(Datestr) 
    if ( Datestr!="" )  // Datestr="03/08/2016"
        var datedata = Datestr.split("/");
        let year=datedata[2];
        let month=(parseFloat(datedata[1]) - 1);
        let day=datedata[0];
        var formatedDate = new Date( month + '-' + day + '-' + year);
        var formatedDatestring=JSON.stringify(formatedDate);
    

在这里,我将 formatedDate 作为 Date 对象作为

2016 年 8 月 3 日星期三 15:20:58 GMT+0530(印度标准时间)

并对其进行字符串化,我得到 formatedDatestring 为

“2016-08-02T18:30:00.000Z”

但我希望 formatedDatestring 为“2016-08-03T00:00:00.000Z”

【问题讨论】:

把最后一行改成var formatedDatestring=JSON.stringify(formatedDate).split("T")[0] + "T00:00:00.000Z"; 你应该使用 dateformatter 谢谢,但它仅将“T18:30:00.000Z”替换为“T00:00:00.000Z”。我在所选日期前一天。 @Archer 【参考方案1】:

你太复杂了

function convertToDateFormat(Datestr) 
    if ( Datestr!="" )  // Datestr="03/08/2016"
        var datedata = Datestr.split("/");
        var formatedDateString=datedata[2]+'-' + datedata[1] + '-' + datedata[0] + 'T00:00:00.000Z';
        return formatedDateString;
    

console.log(convertToDateFormat("03/08/2016")) // 2016-08-03T00:00:00.000Z

【讨论】:

非常感谢... :)【参考方案2】:

这是我实现你想法的方式。

const getDateNoTz = (strDate) => strDate ? strDate.split('/').reverse().join('-') + 'T00:00:00.000Z': '';
let myDate = getDateNoTz('30/09/2019');

【讨论】:

以上是关于如何将日期字符串转换为没有时区的日期对象的主要内容,如果未能解决你的问题,请参考以下文章

将 ISO 8601 日期时间字符串转换为 **Date** 对象时,如何将日期时间重新定位到当前时区?

iOS Swift:当字符串包含时区缩写时,如何将特定的日期字符串格式转换为日期对象?

转换没有时区的 JSON 日期

如何将日期字符串转换为 UTC 日期对象?

使用时区将字符串转换为日期

如何将包含时区的字符串转换为日期时间 sql server