Just a few functions for helping humanize times and sizes.
go get it as github.com/dustin/go-humanize, import it as
"github.com/dustin/go-humanize", use it as humanize
See godoc for complete documentation.
This lets you take numbers like 82854982 and convert them to useful
strings like, 83MB or 79MiB (whichever you prefer).
Example:
fmt.Printf("That file is %s.", humanize.Bytes(82854982))This lets you take a time.Time and spit it out in relative terms.
For example, 12 seconds ago or 3 days from now.
Example:
fmt.Printf("This was touched %s", humanize.Time(someTimeInstance))Thanks to Kyle Lemons for the time implementation from an IRC conversation one day. It's pretty neat.
From a mailing list discussion where a user wanted to be able to label ordinals.
0 -> 0th
1 -> 1st
2 -> 2nd
3 -> 3rd
4 -> 4th
[...]
Example:
fmt.Printf("You're my %s best friend.", humanize.Ordinal(193))Want to shove commas into numbers? Be my guest.
0 -> 0
100 -> 100
1000 -> 1,000
1000000000 -> 1,000,000,000
-100000 -> -100,000
Example:
fmt.Printf("You owe $%s.\n", humanize.Comma(6582491))Nicer float64 formatter that removes trailing zeros.
fmt.Printf("%f", 2.24) // 2.240000
fmt.Printf("%s", humanize.Ftoa(2.24)) // 2.24
fmt.Printf("%f", 2.0) // 2.000000
fmt.Printf("%s", humanize.Ftoa(2.0)) // 2Format numbers with SI notation.
Example:
humanize.SI(0.00000000223, "M") // 2.23nM