如何通过指定格式字符串将字符串转换为javascript中的日期时间对象?

我想找的是:

var dateTime = convertToDateTime("23.11.2009 12:34:56", "dd.MM.yyyy HH:mm:ss");

当前回答

Date.parse()是相当智能的,但我不能保证格式将正确解析。

如果没有,你就必须找到一些东西来连接这两者。您的示例非常简单(纯粹是数字),因此使用REGEX(甚至string.split()—可能更快)与一些parseInt()配对将允许您快速创建日期。

其他回答

我想这个可以帮助你:http://www.mattkruse.com/javascript/date/

有一个getDateFromFormat()函数,您可以稍微调整它来解决您的问题。

更新:在javascripttoolbox.com上有一个更新版本的示例

time = "2017-01-18T17:02:09.000+05:30"

t = new Date(time)

hr = ("0" + t.getHours()).slice(-2);
min = ("0" + t.getMinutes()).slice(-2);
sec = ("0" + t.getSeconds()).slice(-2);

t.getFullYear()+"-"+t.getMonth()+1+"-"+t.getDate()+" "+hr+":"+min+":"+sec

如果字符串与Date.parse()兼容,则使用new Date(dateString)。如果您的格式不兼容(我认为是),您必须自己解析字符串(使用正则表达式应该很容易),并创建一个新的Date对象,其中包含年、月、日、小时、分钟和秒的显式值。

完全满足日期。将字符串转换为RFC822中指定的dd-mm-YYYY格式。 如果使用yyyy-mm-dd解析可能会做错误。

查看Moment.js。它是一个现代而强大的库,弥补了JavaScript糟糕的Date函数(或其不足)。