如何将日期字符串转换为没有时区的日期对象
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** 对象时,如何将日期时间重新定位到当前时区?