Avatar ·

Como formatar corretamente datas em JavaScript? (formato DD.MM.AAAA e outros)

Olá a todos! Comecei a estudar JavaScript e me deparei com o problema de formatação de datas. Preciso exibir a data atual no formato "12.05.2023" (dia.mês.ano), mas a saída padrão de new Date() mostra algo como "Fri May 12 2023 14:30:00 GMT+0300". Isso é completamente ilegível para o usuário.\n\nTentei usar os métodos getDate(), getMonth(), getFullYear(), mas ficou estranho:\n\n```javascript\nconst now = new Date();\nconsole.log(now.getDate() + '.' + now.getMonth() + '.' + now.getFullYear());\n// Exibe: 12.4.2023 (o mês é 4, não 5!)\n```\n\nOutro problema: se o dia ou mês for menor que 10, não tem zero à esquerda. Fica "1.5.2023", mas preciso de "01.05.2023".\n\nAlguém pode me dizer como formatar datas corretamente e de forma elegante? Existem métodos nativos ou preciso criar minha própria função? E o que fazer com o mês começando em 0?