将日期格式化为"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"。

78

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

6个回答

143

调用 toISOString() 方法:

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

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

9
你怎样才能往另一个方向走? - user1789573
2
@user1789573:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date/parse - Robert Harvey

19

toISOString() 只返回当前的UTC时间,而非当前本地时间。如果您想以 yyyy-MM-ddTHH:mm:ss.SSSZ 格式获取当前本地时间,则应使用以下两种方法获取当前时间。

方法一:

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

方法二:

console.log(new Date(new Date().getTime() - new Date().getTimezoneOffset() * 60000).toISOString());


1
最好不要在周围加上 document.write(...)。+1 - Willi Mentzel

6
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;
}

1

添加另一个选项,可能不是最轻量级的。

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>


0

Node.js

const offsetInMinutes = 2 * 60 ; //Romanian
const todaysDate = new Date(new Date().getTime() + offsetInMinutes * 60000).toISOString();

-8

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

DatatypeConverter.printDateTime & DatatypeConverter.parseDateTime


4
这是一个关于 Javascript 的问题,不是关于 Java 的。 - Rafael Herscovici

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接