Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev2.1.6

time

Cálculos de DateTime e Duration com segurança de tipo, impulsionados por extensões.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
1,1 mi
Curtidas
387
Pontos Pub
160

Instalar pacote

flutter pub add time

Visão geral do pacote

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

O pacote time fornece cálculos de DateTime e Duration com segurança de tipos em Dart, melhorando confiabilidade e legibilidade por meio de extensões intuitivas. Simplifica operações comuns de data e hora ao oferecer uma API limpa e fluida que evita erros em tempo de execução associados à manipulação manual de datas. Desenvolvido com foco em segurança e experiência do desenvolvedor, suporta todas as principais plataformas, incluindo móvel, web e desktop. O pacote é ideal para aplicações que exigem manipulação precisa do tempo, como agendamento, cronômetros ou rastreamento de eventos.

Casos de uso

  • Agendamento de eventos
  • Calculando diferenças de tempo
  • Construindo cronômetros de contagem regressiva
  • Gerenciando tarefas recorrentes
  • Gerenciando fuso horário
  • Durações de rastreamento

Principais recursos

  • Operações com segurança de tipo
  • Métodos de extensão extensivos
  • Suporte multiplataforma
  • Segurança em tempo de compilação
  • Sintaxe intuitiva
  • Gerenciamento de duração imutável

Indicado para

  • Desenvolvedores que precisam de lógica confiável de tempo
  • Aplicativos com agendamento complexo
  • Análise baseada em tempo
  • Aplicações em tempo real
  • Ferramentas educacionais para manipulação de tempo

Considerações

  • Requer conhecimento sobre extensões do Dart
  • Pode aumentar ligeiramente o tamanho da compilação
  • Não adequado para acesso de tempo de sistema de baixo nível
  • Limitado a cálculos de tempo de alto nível
  • Nenhuma conversão de fuso horário embutida

README original

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

⏰ Time

Build codecov pub package

With shiny extensions, if you have ever written something like this, then look no further:

final DateTime fourHoursFromNow = DateTime.now() + Duration(hours: 4);

🎖 Installation

dependencies:
  time: "^2.1.6"
⚡ Import
import 'package:time/time.dart';

🎮 Usage

final Duration tenMinutes = 10.minutes;
final Duration oneHourThirtyMinutes = 1.5.hours;
final DateTime afterTenMinutes = DateTime.now() + 10.minutes;
final Duration tenMinutesAndSome = 10.minutes + 15.seconds;
final int tenMinutesInSeconds = 10.minutes.inSeconds;
final DateTime tenMinutesFromNow = 10.minutes.fromNow;

You can perform all basic arithmetic operations on Duration as you always have been:

final Duration interval = 10.minutes + 15.seconds - 3.minutes + 2.hours;
final Duration doubled = interval * 2;

You can also use these operations on DateTime:

final DateTime oneHourAfter = DateTime() + 1.hours;

Duration is easily convertible as it always has been:

final int twoMinutesInSeconds = 2.minutes.inSeconds;

You can also convert Duration to DateTime, if needed:

final DateTime timeInFuture = 5.minutes.fromNow;
final DateTime timeInPast = 5.minutes.ago;

Iterate through a DateTime range:

final DateTime start = DateTime(2019, 12, 2);
final DateTime end = start + 1.weeks;
final DateTime tuesday = start.to(end).firstWhere((date) => date.weekday == DateTime.tuesday);

Granular comparison between DateTime fields:

final DateTime specificDate = DateTime(2021, 01, 01);
final DateTime otherDate = DateTime(2021, 02, 01);

print(specificDate.isAtSameYearAs(otherDate)); // true
print(specificDate.isAtSameMonthAs(otherDate)); // false
print(specificDate.isAtSameDayAs(otherDate)); // false

You can also delay code execution:

void doSomething() async {
  await 5.seconds.delay;
  // Do the other things
}

You can also use the popular copyWith:

final initial = DateTime(2019, 2, 4, 24, 50, 45, 1, 1);
final expected = initial.copyWith(
  year: 2021,
  month: 10,
  day: 28,
  hour: 12,
  minute: 45,
  second: 10,
  millisecond: 0,
  microsecond: 12,
);

Visit the API Reference to find out all that is available.

🐛 Bugs/Requests

If you encounter any problems feel free to open an issue. If you feel the library is missing a feature, please raise a ticket on Github and I'll look into it. Pull request are also welcome.

👏 Inspiration

  • Swift library of the same name - Time.
  • Kotlin library of the same name - Time.

⭐ License

MIT License

Categorias

Dependências

Lista de dependências 1 itens

Repositório-fonte

Projetos que usam este pacote

Rankings