ZOYKUHot Board

humanizr/humanizerTài liệu kỹ thuật

Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities

Mục lục (TOC) (5 phần)▾
Thông báo ngôn ngữ:Chưa có tài liệu tiếng Việt cho kho lưu trữ này. Đang hiển thị bản gốc tiếng Anh chính thức.
Cài đặt nhanh
git clone https://github.com/humanizr/humanizer.git

Humanizer

Build Status NuGet version NuGet downloads

Humanizer is a .NET library for turning strings, enums, dates, times, durations, numbers, quantities, and collections into human-friendly text.

Install

dotnet add package Humanizer

Select your Humanizer version in the documentation site for version-correct package, framework, and API guidance.

Example

using System.Globalization;
using Humanizer;

var culture = CultureInfo.GetCultureInfo("en-US");
var text = TimeSpan.FromMinutes(2).Humanize(culture: culture);
var indianNumber = 1_000_000_000L.ToIndianWords(IndianScaleStyle.CroreBased);
var precise = TimeSpan.FromMilliseconds(1500).HumanizeWithFractionalSeconds(
    precision: 1,
    maxFractionalDigits: 3,
    roundingMode: MidpointRounding.ToEven,
    culture: culture,
    maxUnit: TimeUnit.Second);

Console.WriteLine(text); // 2 minutes
Console.WriteLine(indianNumber); // one hundred crore
Console.WriteLine(precise); // 1.5 seconds

var german = CultureInfo.GetCultureInfo("de-DE");
var duration = TimeSpan.FromDays(7).HumanizeWithCase(
    GrammaticalCase.Dative,
    culture: german);

Console.WriteLine($"in {duration}"); // in einer Woche

In v4 previews, applications can provide the exact noun forms for a culture's CLDR cardinal categories:

var files = new PluralizationForms(
    singular: "plik",
    other: "pliku",
    few: "pliki",
    many: "plików");

if (files.TryPluralize(5m, CultureInfo.GetCultureInfo("pl"), out var noun))
    Console.WriteLine(noun); // plików

TryPluralize uses the required cardinal rule for every supported culture and returns false when the selected form was not supplied. TrySingularize resolves any exact form in the same set. See inflection and quantities for examples.

HumanizeWithCase returns only the duration phrase; add any required preposition yourself. Singular forms may include a locale-authored one-word or article, and a locale may encode a count in the unit form. Locales and custom components without verified case support throw NotSupportedException instead of falling back to English.

V4 previews also provide opt-in decimal SI and binary IEC byte-size APIs:

var size = ByteSize.FromBytes(1_000_000);

Console.WriteLine(size.Format(ByteSizeUnitSystem.DecimalSi)); // 1 MB
Console.WriteLine(size.Format(ByteSizeUnitSystem.BinaryIec)); // 976.56 KiB

Legacy byte-size APIs keep their established unit factors. See byte sizes and rates for explicit formatting, parsing, composites, and rates.

Documentation

Repository

The main library is in src/Humanizer, and its xUnit tests are in tests/Humanizer.Tests. Read the contribution guide before sending a change.

Humanizer is available under the MIT license.

Support

Bản sao tài liệu lưu trữ từ kho lưu trữ GitHub chính thức · Xem trên GitHub
Ngày đồng bộ: 2026-11-08