How to localize date format in Go

1 Answer

0 votes
package main

import (
	"fmt"
	"time"
)

// Localized French month names
var frenchMonths = []string{
	"janvier", "février", "mars", "avril", "mai", "juin",
	"juillet", "août", "septembre", "octobre", "novembre", "décembre",
}

// Localized French weekday names
var frenchWeekdays = []string{
	"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi",
}

func main() {
	now := time.Now()

	weekday := frenchWeekdays[now.Weekday()]
	day := now.Day()
	month := frenchMonths[now.Month()-1]
	year := now.Year()
	hour := now.Hour()
	minute := now.Minute()

	fmt.Println("--- Localized Date (French, no external packages) ---")

	// Short date (dd/mm/yyyy)
	fmt.Printf("Short date : %02d/%02d/%d\n", day, now.Month(), year)

	// Long date (dimanche 19 avril 2026)
	fmt.Printf("Long date  : %s %d %s %d\n", weekday, day, month, year)

	// Time (HH:MM)
	fmt.Printf("Time       : %02d:%02d\n", hour, minute)

	// Weekday
	fmt.Println("Weekday    :", weekday)

	// Month name
	fmt.Println("Month name :", month)

	// Custom format
	fmt.Printf("Custom     : %s %d %s %d à %02d:%02d\n",
		weekday, day, month, year, hour, minute)
}



/*
run:

--- Localized Date (French, no external packages) ---
Short date : 10/11/2009
Long date  : mardi 10 novembre 2009
Time       : 23:00
Weekday    : mardi
Month name : novembre
Custom     : mardi 10 novembre 2009 à 23:00

*/

 



answered 7 hours ago by avibootz
...