new Date或者时间戳 如何快速地转换成'YYYY-MM-DD hh:mm:ss'格式?

例如: new Date() ====> "2017-10-24 19:00:00"
有什么一些简便的方法? 谢谢

阅读 13.1k
6 个回答

使用 moment.js

执行:moment().format('YYYY-MM-DD HH:mm:ss'); //

// 简单写一下,希望对你有帮助。
// 补零
let fillZero = (n) => {
    let result = (n).toString().length === 1 ? ('0' + n): n;
    return result;
}
let formatTime = (t = new Date()) => {
    let d = new Date(t);
    let year = d.getFullYear();
    let month = d.getMonth() + 1;
    let date = d.getDate();
    let hours = d.getHours();
    let minutes = d.getMinutes();
    let seconds = d.getSeconds();
    let result = `${year}-${fillZero(month)}-${fillZero(date)} ${fillZero(hours)}:${fillZero(minutes)}:${fillZero(seconds)}`;
    return result;
}
let res = formatTime(new Date());
console.log(res); // 2017-10-29 21:15:50

之前项目中写过。时间格式化函数 11行-28行

网上有个通用的,比较简单的方法,给Date添加一个format方法:

Date.prototype.format = function (fmt) { //author: meizz
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

使用方式:

console.log( (new Date()).format('yyyy-MM-dd hh:mm:ss') ); // 2017-10-30 10:19:07
console.log( (new Date(1509230114837)).format('yyyy-MM-dd hh:mm:ss') ); // 2017-10-29 06:35:14

封装个函数 然后调用


   `Date date = new Date();
    SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");
    System.out.println(dateFormater.format(date));`
new Date().toLocaleString('cn',{hour12:false})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏