本教程是关于如何在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对象引入了toLocaleDateString 和toLocaleTimeString 。
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的多种方法。