パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v5.3.4

moment_dart

マルチポーズの変更不可能な DateTime サブクラス。複数のローカリゼーションをサポートし、DateTime と Duration を人間が読みやすい形式に簡単に変換できます

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
6820
いいね数
86
Pub ポイント
160

パッケージをインストール

flutter pub add moment_dart

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

moment_dart は、Flutter アプリケーションでの日付と時刻の操作を簡単にするために設計された、多目的で不変の DateTime サブクラスです。複数のローカライゼーションをサポートしており、開発者が DateTime および Duration オブジェクトを異なる言語や地域に合わせた人間が読みやすい形式に変換できるようにしています。不変性を念頭に設計されており、安全かつ予測可能な状態管理を保証します。このパッケージは、Android、iOS、Web、macOS、Windows、Linux プラットフォームすべてにシームレスに統合され、堅牢な日付フォーマットとローカライゼーション機能を必要とするクロスプラットフォームアプリに最適です。

用途

  • 複数の言語での日付の書式設定
  • 読み取り可能な出力で時間差を計算する
  • ローカライズされたカレンダーユーザインターフェースの構築
  • タイムゾーン対応の日付操作の処理
  • 動的な時刻の過去文字列を作成する
  • UIにおける期間表示の簡素化

主な機能

  • 変更不可能な DateTime の代替
  • 組み込みのローカリゼーションサポート
  • 読みやすい時刻のフォーマット
  • クロスプラットフォーム互換性
  • 期間から文字列への変換
  • チェーン可能でスムーズな API

適している対象

  • 国際化されたFlutterアプリ
  • 時刻を表示する必要のあるアプリ
  • カレンダーとスケジューリングツール
  • ローカライゼーション重視のプロジェクト
  • Dartでmoment.jsのような機能を探している開発者

注意事項

  • タイムゾーンの取り扱いに注意が必要です
  • バンドルサイズがわずかに増加する可能性があります
  • 日時形式の使用ケースに限定
  • 複雑な日付演算には適していません
  • 外部のローカライゼーションデータに依存しています
  • 完全なi18nサポートのため、intlパッケージと併用が最適

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

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ł

🌍 💻

カテゴリー

ソースリポジトリ

このパッケージを使用しているプロジェクト