From c543d666a7c12db033e1164bb0f6c08eaaa112b6 Mon Sep 17 00:00:00 2001 From: Rubens de Melo Date: Mon, 28 Sep 2026 11:36:47 +0300 Subject: [PATCH] feat: add date-time formatter with seconds --- CHANGELOG.md | 1 + README.md | 1 + example/brasil_datetime_example.dart | 3 +++ lib/brasil_datetime.dart | 10 ++++++++++ test/brasil_datetime_test.dart | 14 ++++++++++++++ 5 files changed, 29 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98989e4..40b00cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ## [Unreleased] +- Adiciona `diaMesAnoHoraMinutoSegundo()` para formatar data e hora com segundos. - Atualiza `actions/checkout` para v5 e fixa o runner do CI no Ubuntu 24.04. ## 0.4.0 diff --git a/README.md b/README.md index 33797cb..c0f03ed 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ data.ano(); // 1987 data.anoMes(); // 04/1987 data.diaMesAno(); // 22/04/1987 data.diaMesAnoHoraMinuto(); // 22/04/1987 23:37 +data.diaMesAnoHoraMinutoSegundo(); // 22/04/1987 23:37:06 data.semanaDiaMesAnoAbrev(); // qua., 22/04/1987 data.mesAnoAbrev(); // abr. de 1987 data.diaMesAnoAbrev(); // 22 de abr. de 1987 diff --git a/example/brasil_datetime_example.dart b/example/brasil_datetime_example.dart index 74bbbff..71b0c48 100644 --- a/example/brasil_datetime_example.dart +++ b/example/brasil_datetime_example.dart @@ -24,6 +24,9 @@ void main() { ..writeln(data.anoMes()) // 04/1987 ..writeln(data.diaMesAno()) // 22/04/1987 ..writeln(data.diaMesAnoHoraMinuto()) // 22/04/1987 23:37 + ..writeln( + data.diaMesAnoHoraMinutoSegundo(), + ) // 22/04/1987 23:37:06 ..writeln(data.semanaDiaMesAnoAbrev()) // qua., 22/04/1987 ..writeln(data.mesAnoAbrev()) // abr. de 1987 ..writeln(data.diaMesAnoAbrev()) // 22 de abr. de 1987 diff --git a/lib/brasil_datetime.dart b/lib/brasil_datetime.dart index 185951c..660d45c 100644 --- a/lib/brasil_datetime.dart +++ b/lib/brasil_datetime.dart @@ -531,4 +531,14 @@ extension BrasilDateTime on DateTime { _garantirInicializacao(); return DateFormat.yMd(_locale).add_Hm().format(this); } + + /// Retorna a data e a hora completas, incluindo os segundos. + /// + /// Formato: `dd/MM/yyyy HH:mm:ss`. + /// + /// Ex: `22/04/1987 23:37:06`. + String diaMesAnoHoraMinutoSegundo() { + _garantirInicializacao(); + return DateFormat.yMd(_locale).add_Hms().format(this); + } } diff --git a/test/brasil_datetime_test.dart b/test/brasil_datetime_test.dart index 77cd1f8..dddc423 100644 --- a/test/brasil_datetime_test.dart +++ b/test/brasil_datetime_test.dart @@ -120,6 +120,13 @@ void main() { 'dia, mês, ano, hora e minuto', () => expect(data.diaMesAnoHoraMinuto(), '22/04/1987 23:37'), ); + test( + 'dia, mês, ano, hora, minuto e segundo', + () => expect( + data.diaMesAnoHoraMinutoSegundo(), + '22/04/1987 23:37:06', + ), + ); }); group('Datas diferentes', () { @@ -210,5 +217,12 @@ void main() { test('minuto e segundo', () => expect(data2.minutoSegundo(), '09:04')); test('dia, mes, ano, hora e minuto', () => expect(data2.diaMesAnoHoraMinuto(), '05/01/2024 08:09')); + test( + 'dia, mes, ano, hora, minuto e segundo', + () => expect( + data2.diaMesAnoHoraMinutoSegundo(), + '05/01/2024 08:09:04', + ), + ); }); }