将日期对象转换为dd/mm/yyyy hh:mm:ss格式

17

我有一个日期时间对象,它的值如下所示

2017-03-16T17:46:53.677

请问有人能告诉我如何将此转换为dd/mm/yyyy hh:mm:ss格式?我已经搜索了很多,但没有找到这个特定输入的格式转换方法。

2个回答

33
您可以根据其他帖子中提到的方式完全格式化字符串。但我认为最好使用日期对象中的区域设置函数?

var d = new Date("2017-03-16T17:46:53.677"); 
console.log( d.toLocaleString() ); 

编辑:

ISO 8601(您正在构建的格式)规定,要在字符串末尾附加时区信息,请使用[{+|-}hh][:mm]

因此,您可以这样做:

var tzOffset = "+07:00" 
var d = new Date("2017-03-16T17:46:53.677"+ tzOffset);
console.log(d.toLocaleString());
var d = new Date("2017-03-16T17:46:53.677"); //  assumes local time. 
console.log(d.toLocaleString());
var d = new Date("2017-03-16T17:46:53.677Z"); // UTC time
console.log(d.toLocaleString());

编辑:

请您知道,locale函数会以用户语言的方式显示日期和时间,以及所在位置。欧洲日期格式为dd/mm/yyyy,美国日期格式为mm/dd/yyyy

var d = new Date("2017-03-16T17:46:53.677");
console.log(d.toLocaleString("en-US"));
console.log(d.toLocaleString("en-GB"));


@com3lius- 这个很好用。我可以用它正确获取格式。但是我的本地时间是上午11:30,而它显示的是凌晨4:30。我该如何在你的代码中添加7小时的偏移量? - Rihana
toLocaleString 的结果完全取决于实现,它在不同的主机上返回不同的结果。无法保证它适合 OP 的格式。 - RobG
@RobG - 完全同意,这取决于当地如何看待日期。我注意到我的语言环境与OP要求的“mm/dd”不同,而是“dd/mm”。但这是美国人阅读日期的正常方式。 - corn3lius
@corn3lius - 我根据使用的浏览器得到m/d或d/m,因此我不确定系统设置是否会被遵守(默认情况下应该使用它们)。ECMA-402中的“locale”是一个误称,实际上是语言。 - RobG
实际上输出的是16/03/2017,17:46:53,但我们现在是2023年,所以不起作用。 - Raul Chiarella
不是打印日期Now(),而是从字符串“var d = new Date(” 2017-03-16T17:46:53.677“)”预定义的数据。@RaulChiarella - corn3lius

10

开始吧:

var today = new Date();
var day = today.getDate() + "";
var month = (today.getMonth() + 1) + "";
var year = today.getFullYear() + "";
var hour = today.getHours() + "";
var minutes = today.getMinutes() + "";
var seconds = today.getSeconds() + "";

day = checkZero(day);
month = checkZero(month);
year = checkZero(year);
hour = checkZero(hour);
minutes = checkZero(minutes);
seconds = checkZero(seconds);

console.log(day + "/" + month + "/" + year + " " + hour + ":" + minutes + ":" + seconds);

function checkZero(data){
  if(data.length == 1){
    data = "0" + data;
  }
  return data;
}


我认为在 today.getMonth() 上加上 +1 是不正确的。 - Anujith Singh

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