Внутри, объект Date не хранит указание на временную зону, он считает время
всегда в UTC и значением хранит только число миллисекунд с
1970-01-01 00:00:00 UTC
. Он также в курсе временной зоны устройства, и может учитывать её при формировании вывода.
Когда в конструктор
Date передаётся только 1 аргумент (ваш случай), этот аргумент интерпретируется как время в зоне UTC; когда больше одного – в местной временной зоне.
Как я понял, вы хотите создать объект Date, передав дату-время в UTC?
Попробуйте так:
function toDate(date, time) {
return new Date( Date.UTC( date + ' ' + time));
}
Формат
dd/mm/YYYY HH:mm
можно получить, составляя из компонент. Опять же, по UTC получить, или в локальной временной зоне? Для UTC будет выглядеть так:
function pad(n){ return ('0' + n).substr(-2) }
function toUTCString(d) {
return '' + pad( d.getUTCDate()) + '/' + pad(d.getUTCMonth()+1) + '/' + d.getUTCFullYear()
+' ' + pad( d.getUTCHours()) + ':" + pad( d.getUTCMinutes());
}
В локальной временной зоне устройства – уберите 'UTC' из всех методов )