JavaScript だと簡単に作れない
このフォーマットだけならライブラリ入れるほどでもないけど 毎回作るのも面倒
toLocaleString はいい感じだけど 0 でパディングされない
ログみたいに上下に時刻を並べると 5 月や 9 時みたいな 1 桁のところでずれる
単純な置換でやってみる
◯ toISOString を使う (- 区切り)
UTC になるので JST 分 9 時間足しておく
ミリ秒や T はいらないので削除
const date = new Date()
const d = new Date(date)
d.setHours(d.getHours() + 9)
console.log(d.toISOString().split(".", 1)[0].replace("T", " "))
◯ toLocaleString を使う (/ 区切り)
1 桁のところを padding すればよいので 1 桁数字に 0 をつけるだけ
const date = new Date()
console.log(date.toLocaleString().split(/([^\d])/).map((x, i) => i % 2 === 0 && x.length === 1 ? "0" + x : x).join(""))
置換でもいいかも
const date = new Date()
console.log(date.toLocaleString().replace(/\d+/g, x => x.length === 1 ? "0" + x : x))