convert-thai-go is a Go package for Thai date formatting, Thai numeral conversion, and Thai Baht text generation.
แพ็กเกจสำหรับจัดรูปแบบวันที่ภาษาไทย แปลงเลขอารบิกเป็นเลขไทย และแปลงจำนวนเงินเป็นข้อความภาษาไทย

- Thai number formatting
- Thai numeral conversion
- Thai Baht text generation
- Thai date formatting
- Locale support
th Thai locale with Thai numerals
en English locale with Arabic numerals
- Multiple era support
BE Buddhist Era
CE Common Era
MS Mahasakaraj / Saka Era
CS Chulasakaraj Era
RE Rattanakosin Era
HE Hijri Era (approximate)
go get github.com/SiamCore/convert-thai-go
package main
import (
"fmt"
"time"
convertthai "github.com/SiamCore/convert-thai-go"
)
func main() {
// Thai number formatting
num := convertthai.NumberFormat(1000, 2, true, true)
fmt.Println(num)
// Output: ๑,๐๐๐.๐๐
// English number formatting
numEN := convertthai.NumberFormat(1000, 2, false, true)
fmt.Println(numEN)
// Output: 1,000.00
// Thai Baht text
baht := convertthai.ThaiBath(1000)
fmt.Println(baht)
// Output: หนึ่งพันบาทถ้วน
// Default Thai locale (BE)
dateTH := convertthai.DateFormat(time.Now(), "dddd dd mmmm yyyy", nil, nil)
fmt.Println(dateTH)
// Output: พุธ ๒๐ พฤษภาคม ๒๕๖๙
// English locale (CE)
locale := "en"
dateEN := convertthai.DateFormat(time.Now(), "dddd dd mmmm yyyy", nil, &locale)
fmt.Println(dateEN)
// Output: Wednesday 20 May 2026
// Custom era
era := "HE"
dateRE := convertthai.DateFormat(time.Now(), "dd/mm/yyyy", &era, nil)
fmt.Println(dateRE)
// Output: ๒๐/๐๕/๑๔๔๗
}
| Token |
Description |
Example (th) |
Example (en) |
d |
Day without leading zero |
๑ |
1 |
dd |
Day with leading zero |
๐๑ |
01 |
ddd |
Short weekday |
จ |
Mon |
dddd |
Full weekday |
จันทร์ |
Monday |
m |
Month without leading zero |
๑ |
1 |
mm |
Month with leading zero |
๐๑ |
01 |
mmm |
Short month |
ม.ค. |
Jan |
mmmm |
Full month |
มกราคม |
January |
yy |
Two-digit year |
๖๙ |
26 |
yyyy |
Full year |
๒๕๖๙ |
2026 |
H |
Hour without leading zero |
๙ |
9 |
HH |
Hour with leading zero |
๐๙ |
09 |
M |
Minute without leading zero |
๕ |
5 |
MM |
Minute with leading zero |
๐๕ |
05 |
S |
Second without leading zero |
๘ |
8 |
SS |
Second with leading zero |
๐๘ |
08 |
| Format |
Example (th) |
Example (en) |
dd/mm/yyyy |
๒๐/๐๕/๒๕๖๙ |
20/05/2026 |
dd/mm/yy |
๒๐/๐๕/๖๙ |
20/05/26 |
yyyy/mm/dd |
๒๕๖๙/๐๕/๒๐ |
2026/05/20 |
HH:MM:SS |
๐๗:๓๐:๒๕ |
07:30:25 |
dd mmm yyyy |
๒๐ พ.ค. ๒๕๖๙ |
20 May 2026 |
dd mmmm yyyy |
๒๐ พฤษภาคม ๒๕๖๙ |
20 May 2026 |
ddd dd mmm yyyy |
พ ๒๐ พ.ค. ๒๕๖๙ |
Wed 20 May 2026 |
dddd dd mmmm yyyy |
พุธ ๒๐ พฤษภาคม ๒๕๖๙ |
Wednesday 20 May 2026 |
dd/mm/yyyy HH:MM:SS |
๒๐/๐๕/๒๕๖๙ ๐๗:๓๐:๒๕ |
20/05/2026 07:30:25 |
| Locale |
Description |
th |
Thai locale with Thai numerals |
en |
English locale with Arabic numerals |
| Era |
Description |
Example (th) |
Example (en) |
BE |
Buddhist Era (พ.ศ.) |
๒๕๖๙ |
2569 |
CE |
Common Era / Christian Era (ค.ศ.) |
๒๐๒๖ |
2026 |
MS |
Mahasakaraj / Saka Era (มหาศักราช) |
๑๙๔๘ |
1948 |
CS |
Chulasakaraj Era (จุลศักราช) |
๑๓๘๘ |
1388 |
RE |
Rattanakosin Era (รัตนโกสินทรศก) |
๒๔๕ |
245 |
HE |
Hijri Era (ฮิจเราะห์ศักราช, approximate) |
๑๔๔๗ |
1447 |
| Locale |
Default Era |
th |
BE |
en |
CE |
พุธ ๒๐ พฤษภาคม ๒๕๖๙
Wednesday 20 May 2026
หนึ่งพันบาทถ้วน
๑,๐๐๐.๐๐
1,000.00
DateFormat() uses the timezone from the provided time.Time.
HE uses approximate conversion.
- Input string format currently supports:
MIT License