我是一名Java开发人员,我已经习惯了SimpleDateFormat类,它允许我通过设置时区将任何日期格式化为任何格式.
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
System.out.println(sdf.format(date)); // Prints date in Los Angeles
sdf.setTimeZone(TimeZone.getTimeZone("America/Chicago"));
System.out.println(sdf.format(date)); // Prints same date in Chicago
Run Code Online (Sandbox Code Playgroud)
SimpleDateFormat是一个非常简洁的Java解决方案,但不幸的是我在Javascript中找不到任何类似的替代方案.
我在Javascript中扩展Date原型以完全相同.我有Unix格式的日期,但我想在不同的时区格式化它们.
Date.prototype.format = function(format, timezone) {
// Now what?
return formattedDate;
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种巧妙的方法来做到这一点,而不是一个黑客.
谢谢
小智 6
我认为接受的答案不正确。有一种格式化时区的方法。
console.log(new Date().toLocaleDateString('en-US', {timeZone: 'America/Denver'}))
// 11/13/2018
console.log(new Date().toLocaleTimeString('en-US', {timeZone: 'America/Denver'}))
// 2:30:54 PM
console.log(new Date().toLocaleTimeString('en-US', {timeZone: 'America/New_York'}))
// 4:31:26 PM
Run Code Online (Sandbox Code Playgroud)