From b40753e59a5fe67a41ca25a48bfa3f0da37e0ec9 Mon Sep 17 00:00:00 2001 From: Andriamanitra Date: Thu, 9 Apr 2026 14:10:55 +0300 Subject: [PATCH] fix date formatting with %x --- oslib_test.go | 13 +++++++++++++ utils.go | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/oslib_test.go b/oslib_test.go index 5af92625..1d7df412 100644 --- a/oslib_test.go +++ b/oslib_test.go @@ -31,3 +31,16 @@ func TestOsWrite(t *testing.T) { t.Error(err) } } + +func TestOsDateFmt(t *testing.T) { + s := "return os.date('!weekday=%w|%a|%A, month=%b|%B, year=%y, time=%I:%M|%H:%M:%S|%X, date=%Y-%m-%d|%x', 1136214245)" + L := NewState() + defer L.Close() + if err := L.DoString(s); err != nil { + t.Error(err) + } else { + ret := L.Get(-1) + expected := LString("weekday=1|mon|Monday, month=Jan|January, year=06, time=03:04|15:04:05|15:04:05, date=2006-01-02|01/02/06") + errorIfNotEqual(t, expected, ret) + } +} diff --git a/utils.go b/utils.go index 2df68dc7..1e50194d 100644 --- a/utils.go +++ b/utils.go @@ -102,7 +102,7 @@ func (fs *flagScanner) Next() (byte, bool) { var cDateFlagToGo = map[byte]string{ 'a': "mon", 'A': "Monday", 'b': "Jan", 'B': "January", 'c': "02 Jan 06 15:04 MST", 'd': "02", 'F': "2006-01-02", 'H': "15", 'I': "03", 'm': "01", 'M': "04", 'p': "PM", 'P': "pm", 'S': "05", - 'x': "15/04/05", 'X': "15:04:05", 'y': "06", 'Y': "2006", 'z': "-0700", 'Z': "MST"} + 'x': "01/02/06", 'X': "15:04:05", 'y': "06", 'Y': "2006", 'z': "-0700", 'Z': "MST"} func strftime(t time.Time, cfmt string) string { sc := newFlagScanner('%', "", "", cfmt)