Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev5.3.4

moment_dart

Subclasse imutável de DateTime multiuso. Suporta múltiplas localizações para converter facilmente DateTime e Duration em formato legível por humanos

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
6,8 mil
Curtidas
86
Pontos Pub
160

Instalar pacote

flutter pub add moment_dart

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

moment_dart é uma subclasse DateTime multiuso e imutável projetada para manipulação fácil de datas e horários em aplicações Flutter. Suporta múltiplas localizações, permitindo que desenvolvedores convertam objetos DateTime e Duration em formatos legíveis por humanos adaptados a diferentes idiomas e regiões. Criado com imutabilidade em mente, garante gerenciamento seguro e previsível do estado. O pacote se integra perfeitamente em plataformas Android, iOS, Web, macOS, Windows e Linux, tornando-o ideal para aplicativos multiplataforma que exigem recursos robustos de formatação de data e localização.

Casos de uso

  • Formatar datas em múltiplos idiomas
  • Calculando diferenças de tempo com saída legível
  • Construindo interfaces de calendário localizadas
  • Manipulação de operações de data com fuso horário
  • Criando strings dinâmicas de tempo atrás
  • Simplificando a exibição de duração em interfaces

Principais recursos

  • Substituição imutável do DateTime
  • Suporte de localização embutido
  • Formatação de tempo legível
  • Compatibilidade multiplataforma
  • Conversão de duração para string
  • API encadeável e fluida

Indicado para

  • Aplicativos Flutter internacionalizados
  • Aplicativos que precisam de exibição de tempo
  • Ferramentas de calendário e agendamento
  • Projetos com foco em localização
  • Desenvolvedores procurando funcionalidade semelhante ao moment.js no Dart

Considerações

  • Requer manipulação cuidadosa dos fusos horários
  • Pode aumentar levemente o tamanho do pacote
  • Limitado a casos de uso de formatação de data/hora
  • Não adequado para aritmética de data complexa
  • Depende de dados de localização externos
  • Melhor combinado com o pacote intl para suporte completo de i18n

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

moment_dart

pub package License: MIT All Contributors

Inspired by moment.js

References

📖 Read documentation
🆕 Migrate to 5.x.x

Usage

Creating instance

There are multiple ways to create an instance.

// From DateTime
final a = DateTime.now().toMoment();

final b = Moment(DateTime(...));

// This instance won't be affected by global localization!
final c = Moment(b, localization: MomentLocalizations.koKr());
Setting global localization

By default, the global localization is en_US.

Moment.setGlobalLocalization(MomentLocalizations.fr());
Relative Duration

Relative durations are rather inprecise. See precise duration for accuracy and flexibility.

Read about thresholds, and more on docs

final yesterday = Moment.now() - const Duration(days: 1);
yesterday.fromNow(); // a day ago

final add5sec = Moment.now().add(const Duration(seconds: 5));
add5sec.fromNow(dropPrefixOrSuffix: true); // a few seconds
Precise duration

You can create localized human-readable duration text with abbreviation, highly-customizable units.

See more on docs. (delimiter, custom units, abbreviation...)

On Duration objects:

Duration(days: 67, hours: 3, minutes: 2).toDurationString(
  localization: MomentLocalizations.de(),
  form: Abbreviation.semi,
); // in 2 Mo. 7 Tg.

For Moment:

final epoch = Moment.fromMillisecondsSinceEpoch(0);
final now = DateTime(2023, DateTime.july, 14).toMoment();

print(epoch.fromPrecise(now)); // 53 years 7 months ago
Calendar
final Moment now = Moment.now();

print(now.calendar()); // Today at 03:00 PM
Other helpful methods

moment_dart provides numerous convenience methods. Works on both Moment and DateTime.

See all available options in the docs

final now = DateTime.now(); // July 19 2023 03:12 PM (UTC+8)

// ISO week, ISO week year
now.week; // 48
now.weekYear; // 2023

now.isLeapYear; // false

// Date creates new `DateTime` with hours, minutes, etc.. omitted
now.date; // July 19 2023 00:00 AM

now.clone(); // July 19 2023 03:12 PM

now.nextTuesday(); // July 25 2023 03:12 PM

// and many more!

Contributing

Contributions of any kind are welcome! Please refer to CONTRIBUTE.md

Contributors

Батмэнд Ганбаатар
Батмэнд Ганбаатар

💻 🚧 🌍 📖
Ultrate
Ultrate

💻 🌍
Muhammadyusuf
Muhammadyusuf

🌍 💻
Paweł
Paweł

🌍 💻

Categorias

Repositório-fonte

Projetos que usam este pacote