Чтобы быть более общим
void accept(Map<String, ? extends List<?>> multiMap)
var str = 'new Date(0,0,0,11,13,16)';
var str1 = str.match(/\(.*\)/g)[0];
str1 = str1.replace('(', '');
str1 = str1.replace(')', '');
var dateArr = str1.split(',');
var updatedDate = new
Date(dateArr[0],dateArr[1],dateArr[2],dateArr[3],dateArr[4],dateArr[5]);
console.log(updatedDate);
Используйте regex для решения этой проблемы путем сопоставления только чисел. match
вернет массив чисел, поэтому используйте оператор распространения , чтобы установить для всех параметров значение Date.
const res = new Date(...'new Date(0,0,0,11,13,16)'.match(/[0-9]+/g));
console.log(res);
Теоретически для этого можно использовать функцию eval
.
Однако, в зависимости от использования, это создает некоторый риск для безопасности. Узнайте больше об этом здесь
Если это возможно, я бы предложил вам использовать другую форму строки даты, например, "yyyy-mm-dd" (2019-02-17) и проанализируйте его для объекта даты, используя new Date(dateString) constructor
(new Date('2019-01-17')
).