2016-07-05 32 views
0

我正在使用S3 SDK for Node發出請求並列出存儲桶內容(照片)。然後我需要根據LastModified日期這些內容排序日期。這是它的返回日期(我真的不知道是什麼格式,即使是/爲什麼AWS這樣做是這樣的格式:S3 Node.js SDK,LastModified日期格式?

Tue Jul 05 2016 11:00:52 GMT-0400 (EDT) 

我使用Date.parse()方法和使用Moment.js解析嘗試,但。無濟於事

事實上,瞬間說,這是一個無效的日期:

var day = moment("Tue Jul 05 2016 11:00:52 GMT-0400 (EDT)").isValid(); // false 

有其他人與S3節點SDK之前經歷了這一點,爲什麼日期格式如下

+0

格式(注意日期和月份翻轉)您將不得不指定解析器的日期格式以瞭解如何解析它。根據Moment.js文檔「如果您知道將要解析的日期字符串的格式,則明確指定該格式始終是最佳選擇。」我會閱讀如何指定格式在這裏:http://momentjs.com/guides/#/parsing/ –

+0

@MarkB,是的,這就是我的想法。但Moment.js沒有上述組合的格式,如「Tue」和「Jul」(月份名稱而不是數字) –

+0

是的,請閱讀文檔:http://momentjs.com/docs/#/解析/字符串/ –

回答

1

這似乎是正確解析您的日期:

moment('Tue Jul 05 2016 11:00:52 GMT-0400 (EDT)', 'ddd MMM DD YYYY HH:mm:ss ZZ') 
1

當我看着這個在今天,我注意到一個對象在S3 LastModified日期的格式是不一樣的東西最初發布。這是我從S3回來的響應:

LastModified: 'Mon, 06 Feb 2017 00:00:35 GMT'

所以我不得不更新基於答案從@idbehold

const lastModified = moment(result.LastModified, 'ddd, DD MMM YYYY HH:mm:ss ZZ');