31 '([0-9]{4})([-]?([0-9]{2}))([-]?([0-9]{2}))'
32 +
'(T([0-9]{2})(((:?([0-9]{2}))?((:?([0-9]{2}))?(\.([0-9]+))?))?)'
33 +
'(Z|([+-]([0-9]{2}(:?([0-9]{2}))?)))?)?'
56 Object.keys(
DateFormatter.DEFAULT_OPTIONS).forEach(
function (k) {
57 ctx.opts[k] = opts.hasOwnProperty(k) ?
72 throw new Error(
'Expected a ISO8601 datetime but got \'' + time +
'\'')
76 [dateParts[1], dateParts[3] ||
'01', dateParts[5] ||
'01'].join(
'-')
80 , dateParts[11] ||
'00'
81 , dateParts[14] ||
'00'
84 , dateParts[16] ||
'000'
87 date += (dateParts[17] !== undefined) ?
89 ((dateParts[19] && dateParts[20] === undefined) ?
'00' :
'') :
102 var parts = this.opts.local ?
107 [parts[0],parts[1],parts[2]].join(this.opts.hyphens ?
'-' :
'')
109 , [parts[3],parts[4],parts[5]].join(this.opts.colons ?
':' :
'')
110 , (this.opts.ms) ?
'.' + parts[6] :
''
111 , (this.opts.local) ? ((this.opts.offset) ?
125 date.getUTCFullYear()
163 var padded =
'' + digit
164 while (padded.length < length) {
165 padded =
'0' + padded
178 var offset = (d ||
new Date()).getTimezoneOffset()
179 return (offset === 0) ?
'Z' : [
180 (offset < 0) ?
'+' :
'-'