JavaScript使用Date.parse()或new Date()解析字符串日期的格式要求

在JavaScript里,Date.parse()会接收一个字符串作为参数,根据字符串格式返回:

  1. 如果字符串符合日期格式,返回自1970-01-01 00:00:00 UTC时间起的毫秒数。
  2. 如果字符串不符合格式,返回NaN。

new Date(str),构造函数也可以接收一个字符串作为参数,把字符串转换为表示的日期。构造的日期对象为:

  • 如果字符串符合日期格式,返回自1970-01-01 00:00:00 UTC起的Date对象。
  • 如果字符串不符合格式,返回Invalid Date。

new Date()使用的是Date.parse的格式要求。其日期格式为RFC2822 或ISO 8601定义的格式。

这里主要简单介绍下我们常用的ISO 8601。

格式:

YYYY-MM-DDThh:mm:ss.sTZD

其中

YYYY:表示年份,由四个数字表示。
MM:表示月份,由两位数字表示。01-12
DD:表示日期,由两位数字表示。01-31
hh:表示时,由两位数字表示。00-23,注意不能有am/pm
mm:表示分,由两位数字表示。00-59
ss:表示秒,由两位数字表示。00-59
s:由多位数字表示,是一个比例数字,表示0.xxxx秒。
TZD:时区。值可以为Z,或者+hh:mm或者-hh:mm。其中Z表示UTC时间,+hh:mm表示相对UTC加的时区时间,-hh:mm表示相对UTC减的时区时间。

注意:日期和时间之间使用了字符串“T”隔开,表示T后面为时间(time)。

示例

表示东8区(即北京时间)晚上8点

2018-01-11T20:00:00+08:00

等同于UTC时间

2018-01-11T12:09:08Z

版权声明:著作权归作者所有。

相关推荐

JavaScript检查Date对象是否为Invalid Date

使用Date()构造日期对象,如果传入非日期格式的字符串,仍然能构造出Date对象。在chrome控制台>var date = new Date("hello"); >date Invalid Date >typeof date “object” >date instanceof&nb

JavaScript(ES6)判断字符串是否包含子字符串的方法

ES6 includesES6的字符串新增了includes方法,我们可以用它来判断是否包含子字符串。str.includes(searchString[, position]) searchString:查询的子字符串position:可选,开始搜索的位置,默认为0'Blue Whale'.includes('Blue'); // returns

Swift日期和字符串互相转换(Swift 3/Swift 4)

Swift随着版本的升级,日期类都会有一点变化。所以各个版本的Swift日期和字符串的转换有所不同。Swift 4String转换为Datevar dateString = "2017-11-17" var dateFormatter = DateFormatter() // dateFormat