Skip to content

Conversation

@kunalspathak
Copy link

test-parser.js expects Date fields of files/directory to match with
whatever specified in test case. However the expected date/time values
doesn't specify timezone.

Here is what ES6 spec says regaring missing timeZone.

If the time zone offset is absent, the date-time is interpreted as a local time.

On the other hand, the information returned by parseListEntry() is alway in UTC.
See ES6 spec for Date constructor

Hence if someone running test cases in timeZone other than UTC will always see mismatch
in timeZone as the actual date returned would be in UTC, while expected date would
be in UTC equivalent of datetime specified in expected property.

This issue has not surfaced in node+v8 because if timeZone is missing, it is
interpreted as UTC.

A quick test can verify this is FF nightly / Edge / Chrome

var x = new Date('2012-12-21T00:00:00.000');
x.toISOString();

// For PST timezone, this should be "2012-12-21T08:00:00.000Z" and not "2012-12-21T00:00:00.000Z". 

`test-parser.js` expects `Date` fields of files/directory to match with
whatever specified in test case. However the expected date/time values
doesn't specify timezone.

Here is what [ES6 spec](http://www.ecma-international.org/ecma-262/6.0/#sec-date-time-string-format) says regaring missing timeZone.
```doc
If the time zone offset is absent, the date-time is interpreted as a local time.
```

On the other hand, the information returned by `parseListEntry()` is alway in `UTC`.
See ES6 spec for [Date constructor](http://www.ecma-international.org/ecma-262/6.0/#sec-date-year-month-date-hours-minutes-seconds-ms)

Hence if someone running test cases in timeZone other than UTC will always see mismatch
in timeZone as the actual date returned would be in UTC, while expected date would
be in UTC equivalent of datetime specified in `expected` property.

This issue has not surfaced in node+v8 because if timeZone is missing, it is
interpreted as UTC.

A quick test can verify this is FF nightly / Edge / Chrome

```js
var x = new Date('2012-12-21T00:00:00.000');
x.toISOString();

// should be "2012-12-21T08:00:00.000Z" and not "2012-12-21T00:00:00.000Z"

```
icetee added a commit to icetee/node-ftp that referenced this pull request Jul 25, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant