格式日期为" yyyy-MM-dd' H&H; mm:ss.SSS' Z'"'''''

时间:2012-10-17 23:33:44

标签: javascript facebook date date-format parse-platform

我需要将Parse's REST API for Facebook指定的日期格式设为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'。我想知道最强轻量级解决方案是什么。

5 个答案:

答案 0 :(得分:64)

调用toISOString()方法:

var dt = new Date("30 July 2010 15:05 UTC");
document.write(dt.toISOString());

// Output:
//  2010-07-30T15:05:00.000Z

答案 1 :(得分:4)

function converToLocalTime(serverDate) {

    var dt = new Date(Date.parse(serverDate));
    var localDate = dt;

    var gmt = localDate;
        var min = gmt.getTime() / 1000 / 60; // convert gmt date to minutes
        var localNow = new Date().getTimezoneOffset(); // get the timezone
        // offset in minutes
        var localTime = min - localNow; // get the local time

    var dateStr = new Date(localTime * 1000 * 60);
    // dateStr = dateStr.toISOString("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); // this will return as just the server date format i.e., yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
    dateStr = dateStr.toString("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
    return dateStr;
}

我已经完成了......如果你还没有得到解决方案,请使用它: - )

答案 2 :(得分:2)

toISOString()将仅返回当前UTC时间而不是当前本地时间。如果您想以yyyy-MM-ddTHH:mm:ss.SSSZ格式获取当前本地时间,那么您应该使用以下两种方法获取当前时间

方法1:



document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString());




方法2:



document.write(new Date(new Date().getTime() - new Date().getTimezoneOffset() * 60000).toISOString());




答案 3 :(得分:0)

添加另一个选项,也许不是最轻巧的。

dayjs.extend(dayjs_plugin_customParseFormat)
console.log(dayjs('2018-09-06 17:00:00').format( 'YYYY-MM-DDTHH:mm:ss.000ZZ'))
<script src="https://cdn.jsdelivr.net/npm/dayjs@1.9.7/dayjs.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/dayjs@1.9.7/plugin/customParseFormat.js"></script>

答案 4 :(得分:-5)

您可以使用javax.xml.bind.DatatypeConverter

DatatypeConverter.printDateTime &安培; DatatypeConverter.parseDateTime