github.com/viant/toolbox@v0.34.5/time_format_test.go (about) 1 package toolbox_test 2 3 import ( 4 "fmt" 5 "github.com/stretchr/testify/assert" 6 "github.com/viant/toolbox" 7 "strings" 8 "testing" 9 "time" 10 ) 11 12 func TestTimeFormat(t *testing.T) { 13 14 { 15 timeLayout := toolbox.DateFormatToLayout("yyyy/MM/dd/hh") 16 fmt.Printf("%s\n", timeLayout) 17 } 18 19 { 20 timeLayout := toolbox.DateFormatToLayout("yyyy-MM-dd HH:mm:ss z") 21 timeValue, err := time.Parse(timeLayout, "2018-01-15 08:02:23 UTC") 22 assert.Nil(t, err) 23 assert.EqualValues(t, 23, timeValue.Second()) 24 } 25 26 { 27 timeLayout := toolbox.DateFormatToLayout("yyyy-MM-dd HH:mm:ss") 28 timeValue, err := time.Parse(timeLayout, "2016-03-01 03:10:11") 29 assert.Nil(t, err) 30 assert.EqualValues(t, 11, timeValue.Second()) 31 } 32 33 { 34 35 dateLayout := toolbox.DateFormatToLayout("yyyy-MM-dd HH:mm:ss.SSSZ") 36 timeValue, err := time.Parse(dateLayout, "2022-11-10 10:32:28.984-08") 37 assert.Nil(t, err) 38 39 assert.Equal(t, int64(1668105148), timeValue.Unix()) 40 } 41 42 { 43 dateLaout := toolbox.DateFormatToLayout("yyyy-MM-dd HH:mm:ss.SSSZ") 44 timeValue, err := time.Parse(dateLaout, "2022-11-10 10:32:28.984-08") 45 assert.Nil(t, err) 46 assert.Equal(t, int64(1668105148), timeValue.Unix()) 47 } 48 49 { 50 dateLaout := toolbox.DateFormatToLayout("yyyy-MM-dd HH:mm:ss.SSS") 51 timeValue, err := time.Parse(dateLaout, "2017-11-04 22:29:33.363") 52 assert.Nil(t, err) 53 54 assert.Equal(t, 2017, timeValue.Year()) 55 assert.Equal(t, time.Month(11), timeValue.Month()) 56 assert.Equal(t, 4, timeValue.Day()) 57 58 assert.Equal(t, int64(1509834573), timeValue.Unix()) 59 } 60 61 { 62 dateLaout := toolbox.DateFormatToLayout("dd/MM/yyyy hh:mm:ss") 63 timeValue, err := time.Parse(dateLaout, "22/02/2016 12:32:01") 64 assert.Nil(t, err) 65 assert.Equal(t, int64(1456144321), timeValue.Unix()) 66 } 67 68 { 69 dateLaout := toolbox.DateFormatToLayout("yyyyMMdd hh:mm:ss") 70 timeValue, err := time.Parse(dateLaout, "20160222 12:32:01") 71 assert.Nil(t, err) 72 assert.Equal(t, int64(1456144321), timeValue.Unix()) 73 } 74 75 { 76 dateLaout := toolbox.DateFormatToLayout("yyyy-MM-dd hh:mm:ss z") 77 timeValue, err := time.Parse(dateLaout, "2016-02-22 12:32:01 UTC") 78 assert.Nil(t, err) 79 assert.Equal(t, int64(1456144321), timeValue.Unix()) 80 } 81 82 { 83 dateLaout := toolbox.DateFormatToLayout("yyyy-MM-dd hh:mm:ss z") 84 timeValue, err := time.Parse(dateLaout, "2016-02-22 12:32:01 UTC") 85 assert.Nil(t, err) 86 assert.Equal(t, int64(1456144321), timeValue.Unix()) 87 } 88 89 { 90 dateLaout := toolbox.DateFormatToLayout("yyyy-MM-dd hh:mm:ss z") 91 timeValue, err := time.Parse(dateLaout, "2016-02-22 12:32:01 UTC") 92 assert.Nil(t, err) 93 assert.Equal(t, int64(1456144321), timeValue.Unix()) 94 } 95 96 { 97 dateLaout := toolbox.DateFormatToLayout("yyyy-MM-dd HH:mm:ss z") 98 timeValue, err := time.Parse(dateLaout, "2016-06-02 21:46:19 UTC") 99 assert.Nil(t, err) 100 assert.Equal(t, int64(1464903979), timeValue.Unix()) 101 } 102 103 } 104 105 func TestGetTimeLayout(t *testing.T) { 106 { 107 settings := map[string]string{ 108 toolbox.DateFormatKeyword: "yyyy-MM-dd HH:mm:ss z", 109 } 110 assert.Equal(t, "2006-01-02 15:04:05 MST", toolbox.GetTimeLayout(settings)) 111 assert.True(t, toolbox.HasTimeLayout(settings)) 112 } 113 { 114 settings := map[string]string{ 115 toolbox.DateLayoutKeyword: "2006-1-02 15:04:05 MST", 116 } 117 assert.Equal(t, "2006-1-02 15:04:05 MST", toolbox.GetTimeLayout(settings)) 118 assert.True(t, toolbox.HasTimeLayout(settings)) 119 } 120 { 121 settings := map[string]string{} 122 assert.False(t, toolbox.HasTimeLayout(settings)) 123 124 } 125 } 126 127 func TestTimestampToString(t *testing.T) { 128 129 { 130 date := toolbox.TimestampToString("yyyy-MM-dd HH:mm:ss z", int64(0), 1480435743722684356) 131 assert.True(t, strings.Contains(date, "2016-11")) 132 } 133 { 134 135 date := toolbox.TimestampToString("yyyyMMddhh", int64(0), 1489512277722684356) 136 assert.True(t, strings.Contains(date, "201703")) 137 } 138 139 }