如何在javascript中把字符串转换为日期/从日期转换为字符串?

546 阅读3分钟

本教程是关于如何在javascript中把字符串转换为日期的例子。这些例子适用于typecript,因为typecript是javascript的超集。

Typecript中的字符串和日期类型

string Date 对象在typescript中具有默认的当前日期和时间。Date的默认构造函数返回当前的日期时间。Date对象拥有不同的时区 - GMT和UTC。

字符串格式应该是ISO格式。ISO格式是YYYY-MM-DDTHH:MM:SS ,而YYYY-MM-DD

如果你想要像UTC格式一样的时区,后缀为z

字符串和date 是typescript中的对象,持有不同的值。

有时,想要处理日期并转换为不同的类型。我们有一个momentJS 库,使用typescript和javascript来处理和操作Date对象。

我们有很多方法可以将字符串转换为日期。

这是一种简单易行的方法来转换为Date对象。向Date构造函数传递字符串日期值。

如果字符串在ISO format ,它返回有效的日期。如果字符串日期不在ISO format ,它返回无效的日期。

下面是一个例子

let dateString = '2015-10-06'   
let dateString1= '10-06-2015'   
let dateString2= 'asdfasdfasdfads'  
let newDate = new Date(dateString);  
let newDate1 = new Date(dateString1);  
let newDate2 = new Date(dateString2);  
console.log(newDate) // Tue Oct 06 2015 05:30:00 GMT+0530 (India Standard Time)  
console.log(newDate1) // Tue Oct 06 2015 00:00:00 GMT+0530 (India Standard Time)  
console.log(newDate2)//  Invalid Date  

momentjs库提供了以下构造函数

  moment(stringDate,formatString)

参数: stringDate - 字符串中的有效日期formatString - 输出日期格式

string 如果包含格式为MM-DD-YYYY 的日期数据,那么我们必须使用方法来转换为Date对象。

  
var dateString = '08-25-2018';  
var momentVariable = moment(dateString, 'MM-DD-YYYY');  
var stringvalue = momentVariable.format('YYYY-MM-DD');   
console.log(stringvalue); // outputs 2018-08-25  

我们有很多方法可以使用toDateString()方法和时刻库来实现。我们将在下面的例子中看到这两种方法。

日期对象有一个名为toDateString()的方法,它以字符串的形式返回日期 下面是一个将日期转换为字符串的例子

  
var date = new Date('2017-03-07T10:00:00');  
let str = date.toDateString();  
console.log(str) //Tue Mar 07 2017  
console.log(typeof str) // string  

使用 momentjs 的例子

日期对象被创建,并将此日期对象传递给moment构造器,并调用format方法,该方法按照描述的格式解析日期。

  
var date = new Date('2017-03-07T10:00:00');  
var formatted = moment(date).format('D MMMM YYYY');  
console.log('formatted' ,formatted) // outputs 7 March 2017  
console.log('formatted' ,typeof formatted) // outputs string  

ES6为Date对象引入了toLocaleDateStringtoLocaleTimeString

toLocaleDateString 方法将当前日期以本地化的格式转换为字符串。

const date = new Date();

const localDateString = date.toLocaleDateString('En-en');
console.log(localDateString); //6/18/2021
console.log(type localDateString); // string

toLocaleTimeString 方法将当前的时间以本地化的格式转换为字符串。

const date = new Date();
const localDateString = date.toLocaleTimeString('En-en');

console.log(localDateString); //8:50:29 PM
console.log(type localDateString); // string

总结

总而言之,我们学会了在Javascript和typescript中把String转换成Date和Date转换成String的多种方法。