Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev5.0.0

relative_time

Expressa um objeto DateTime relativo ao tempo atual em forma de texto.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
8,2 mil
Curtidas
22
Pontos Pub
160

Instalar pacote

flutter pub add relative_time

Visão geral do pacote

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

O pacote relative_time converte um objeto DateTime em uma string legível por humanos que expressa o tempo em relação ao momento atual. Por exemplo, pode exibir 'há 2 minutos' ou 'em 3 horas' em vez de timestamps brutos. Ele suporta múltiplos idiomas e foi projetado para simplicidade e desempenho em todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux. Ideal para aplicativos que precisam de exibição dinâmica e amigável ao usuário de horários em feeds, notificações ou interfaces de chat.

Casos de uso

  • Exibindo o tempo desde que um post foi publicado
  • Mostrando contagens regressivas ou lembretes
  • Melhorando os horários de mensagens no chat
  • Atualizando indicadores de atividade em tempo real
  • Melhorando a UX em aplicativos de mídia social

Principais recursos

  • API simples com configuração mínima
  • Suporta localização
  • Compatibilidade multiplataforma
  • Atualizações automáticas para precisão em tempo real
  • Leve e eficiente

Indicado para

  • Aplicativos com feeds de dados em tempo real
  • Aplicativos de redes sociais
  • Ferramentas de tarefas e lembretes
  • Plataformas de bate-papo e mensagens
  • Componentes da interface do usuário que exigem rótulos de tempo dinâmicos

Considerações

  • Requer atualização manual para atualizações em tempo real
  • Limitado apenas à formatação de tempo relativo
  • Sem suporte embutido para unidades de tempo personalizadas
  • Depende da precisão do relógio do sistema
  • Pode ser necessário tratamento adicional para diferenças de fuso horário

README original

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

relative_time

A Flutter package to express a DateTime object relative to the current time in text form. For instance, it may transform DateTimes into 3 years ago, or in 42 minutes, or now.

Features

  • Available in more languages than you can name.
  • Provides localization delegate for easy internationalization.
  • Usable as class instance method call or extension method.
  • Can be expressed in different, customizable time units.
  • Supports numeric and natural representations.

Getting started

The package may optionally retrieve the appropriate localization from the BuildContext. The standard way to setup localization is to make use of a WidgetApp's (such as a MaterialApp) localizationsDelegates and supportedLocales. If you're already using these to localize your app, it should suffice to add RelativeTimeLocalizations.delegate to your list of localizationsDelegates, roughly as follows.

MaterialApp(
  localizationsDelegates: const <LocalizationsDelegate<dynamic>>[
    AppLocalizations.delegate,
    RelativeTimeLocalizations.delegate,
    GlobalMaterialLocalizations.delegate,
    GlobalCupertinoLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
  ],
  supportedLocales: AppLocalizations.supportedLocales,
);

If your app does not make use of (this form of) localization yet but you would like it to, reference the Flutter documentation on internationalization for more information on how to set this up.

Usage

The relative time may be accessed by passing the DateTime source object to format on an instance of RelativeTime with either a BuildContext (if configured for localization) or a specific Locale.

RelativeTime(context).format(time);
RelativeTime.locale(const Locale('en')).format(time);

Alternatively, the provided DateTime extension methods are a bit more concise.

time.relativeTime(context);
time.relativeTimeLocale(const Locale('en'));

You may specify a list of time units that will be considered. This can be any of the following: year, month, week, day, hour, minute and second. By default, all time units are potentially used. The following limits the relative time to being expressed in years and weeks. No judgement here. Because weeks are the most granular time unit specified, anything less than one week would be represented as this week.

RelativeTime(
  context, 
  timeUnits: const <TimeUnit>[
    TimeUnit.year,
    TimeUnit.week,
  ],
).format(time);

By default, results are described using natural language as much as possible. That is, one day in the future will be transformed into tomorrow. If you'd rather see this as in 1 day, set the numeric parameter to true.

RelativeTime(
  context,
  numeric: true,
).format(time);

Testing

The current time may be mocked with help from the clock package.

withClock(
  Clock.fixed(DateTime.fromMicrosecondsSinceEpoch(0)),
  () => RelativeTime(context).format(time),
);

Additional information

Translations have been extracted from the Unicode CLDR Project. The extraction tool for this purpose is available in the dev folder. Note that due to the automated nature of this process, PRs for language updates will not be considered.

Categorias

Dependências

Lista de dependências 2 itens

Repositório-fonte

Projetos que usam este pacote