如何将 12-Jan-2016 像 javascript 中的日期字符串转换为 2016-01-12 00:00:00



如何将 javascript 中的日期字符串等 12-Jan-2016 转换为 2016-01-12 00:00:00,

我正在查看时刻 js,但似乎没有类似的选项,我也尝试了 js 日期函数,但返回无效日期。

知道我在这里错过了什么吗?

如果您只是想重新格式化字符串,那么不要为日期而烦恼:

function reformatDateString(ds) {
   var months = {jan:'01',feb:'02',mar:'03',apr:'04',may:'05',jun:'06',
                 jul:'07',aug:'08',sep:'09',oct:'10',nov:'11',dec:'12'};
  var b = ds.split('-');
  return b[2] + '-' + months[b[1].toLowerCase()] + '-' + b[0] + ' 00:00:00';
}
document.write(reformatDateString('12-Jan-2016'));

但是,如果您确实需要将字符串解析为 Date,请执行此操作并单独设置字符串的格式:

function parseDMMMY(s) {
  var months = {jan:0,feb:1,mar:2,apr:3,may:4,jun:5,
                jul:6,aug:7,sep:8,oct:9,nov:10,dec:11};
  var b = s.split(/-/);
  return new Date(b[2], months[b[1].toLowerCase()], b[0]);
}
document.write(parseDMMMY('16-Jan-2016'));
function formatDate(d) {
  function z(n){return ('0'+n).slice(-2)}
  return z(d.getDate()) + '-' + z(d.getMonth()+1) + '-' + d.getFullYear() + 
         ' ' + z(d.getHours()) + ':' + z(d.getMinutes()) + ':' + z(d.getSeconds());
}
document.write('<br>' + formatDate(parseDMMMY('16-Jan-2016')));

您可以使用矩解析函数和格式方法:

var dateString = "12-Jan-2016";
var convertedFormat = moment(dateString, "DD-MMM-YYYY").format("YYYY-MM-DD HH:mm:ss");
console.log(convertedFormat);
// this will display: 2016-01-12 00:00:00

请确保Jan是您所在地区的有效月份。

我认为

这个函数可能会给你你想要的东西。

 def parseStringDate(String date,Boolean flagTime=false){
    def date
    def Format='yyyy-MM-dd'
    def datePart=_date.toString().substring(0,10)
    if (flagTime){
        date = datePart+" "+_date.toString().substring(11,19)
      Format=Format+" "+'HH:mm:ss'
    }else date = datePart
    return [date, Format]
}