Отменяя, вы достигаете динамического полиморфизма. Когда вы говорите об переопределении статических методов, слова, которые вы пытаетесь использовать, противоречивы.
Статические слова - время компиляции, переопределение используется для динамического полиморфизма. Оба они противоположны по своей природе и поэтому не могут использоваться вместе.
Динамическое полиморфное поведение возникает, когда программист использует объект и получает доступ к методу экземпляра. JRE будет отображать различные методы экземпляра разных классов в зависимости от того, какой тип объекта вы используете.
Когда вы говорите, что переопределяете статические методы, статические методы, к которым мы будем обращаться, используя имя класса, которое будет связано с компиляцией времени, поэтому во время работы с статическими методами нет концепции связывания методов. Таким образом, термин «переопределяющий» статические методы сам по себе не имеет никакого значения.
Примечание: даже если вы обращаетесь к методу класса с объектом, все еще java-компилятор достаточно интеллектуальный, чтобы найти его и будет делать статическая связь.
Попробуйте
let d= new Date().toLocaleString('en-GB')
let dNoZeros = d.replace(/^0?(\d?\d).0?(\d?\d)/, "$1/$2");
console.log(d); // 18/01/2019, 14:20:58
console.log(dNoZeros); // 18/1/2019, 14:20:58
Вам необходимо специально добавить язык 'en-GB'
к toLocaleString
:
<a>
<script type="text/javascript">
document.write('<p><span id="date">', new Date().toLocaleString('en-GB'), '<\/span>.<\/p>')
if (document.getElementById) onload = function() {
setInterval("document.getElementById ('date').firstChild.data = new Date().toLocaleString('en-GB')", 1000)
}
</script>
</a>
1) Разработчики редко используют document.write
для чего-либо еще
2) Передача строки в setInterval
считается антишаблоном, так как ее можно использовать для атак XSS .
3) Вам не нужно обновлять код каждые 50 секунд. Через секунду все будет хорошо.
Здесь рефакторинг, за которым немного легче следовать.
// Add the HTML to the document body element
document.body.innerHTML = '<p><span id="date"></span><p>';
// Grab the date element
const date = document.querySelector('#date');
// Create a timer that calls the `changeDate` function once a second
const timer = setInterval(changeDate, 1000);
function changeDate() {
// Set the textContent of `date` to the new date
date.textContent = new Date().toLocaleString('en-GB');
}