initial commit

This commit is contained in:
2026-02-08 16:10:41 +11:00
commit 635193f381
13 changed files with 3190 additions and 0 deletions

57
cmd/demo/demo.go Normal file
View File

@@ -0,0 +1,57 @@
package main
import (
"fmt"
"time"
"git.haelnorr.com/h/timefmt"
)
func main() {
fmt.Println("=== timefmt Demo ===\n")
// 1. Building a custom format
fmt.Println("1. Building a custom format:")
format := timefmt.NewBuilder().
Year4().Dash().
MonthNumeric2().Dash().
DayNumeric2().Space().
Hour24().Colon().
Minute().Colon().
Second().
Build()
fmt.Printf(" Go format: %s\n", format.GoFormat())
fmt.Printf(" LDML: %s\n", format.LDML())
fmt.Printf(" Description: %s\n\n", format.Description())
// 2. Using pre-built formats
fmt.Println("2. Pre-built formats:")
now := time.Now()
fmt.Printf(" ISO8601: %s\n", timefmt.ISO8601.Format(now))
fmt.Printf(" DateTime: %s\n", timefmt.DateTime.Format(now))
fmt.Printf(" DateUS: %s\n", timefmt.DateUS.Format(now))
fmt.Printf(" Kitchen: %s\n\n", timefmt.Kitchen.Format(now))
// 3. Parsing existing Go formats
fmt.Println("3. Parsing an existing Go format:")
parsed, _ := timefmt.ParseGoFormat("02/01/2006")
fmt.Printf(" Input: 02/01/2006\n")
fmt.Printf(" LDML: %s\n", parsed.LDML())
fmt.Printf(" Description: %s\n\n", parsed.Description())
// 4. Complex format example
fmt.Println("4. Complex format with custom text:")
complex := timefmt.NewBuilder().
WeekdayFull().Comma().
MonthFull().Space().
DayNumeric().Comma().
Year4().Space().
Literal("at").Space().
Hour12().Colon().
Minute().Space().
AMPM().
Build()
fmt.Printf(" Formatted: %s\n", complex.Format(now))
fmt.Printf(" LDML: %s\n", complex.LDML())
}