github.com/GuanceCloud/cliutils@v1.1.21/pipeline/ptinput/funcs/dateparse_test.go (about) 1 // Unless explicitly stated otherwise all files in this repository are licensed 2 // under the MIT License. 3 // This product includes software developed at Guance Cloud (https://www.guance.com/). 4 // Copyright 2021-present Guance, Inc. 5 6 package funcs 7 8 /* 9 import ( 10 "testing" 11 "time" 12 13 "github.com/araddon/dateparse" 14 ) 15 16 func TestDateParse(t *testing.T) { 17 cases := []string{ 18 "May 8, 2009 5:57:51 PM", 19 "oct 7, 1970", 20 "oct 7, '70", 21 "oct. 7, 1970", 22 "oct. 7, 70", 23 "Mon Jan 2 15:04:05 2006", 24 "Mon Jan 2 15:04:05 MST 2006", 25 "Mon Jan 02 15:04:05 -0700 2006", 26 "Monday, 02-Jan-06 15:04:05 MST", 27 "Mon, 02 Jan 2006 15:04:05 MST", 28 "Tue, 11 Jul 2017 16:28:13 +0200 (CEST)", 29 "Mon, 02 Jan 2006 15:04:05 -0700", 30 "Mon 30 Sep 2018 09:09:09 PM UTC", 31 "Mon Aug 10 15:44:11 UTC+0100 2015", 32 "Thu, 4 Jan 2018 17:53:36 +0000", 33 "Fri Jul 03 2015 18:04:07 GMT+0100 (GMT Daylight Time)", 34 "Sun, 3 Jan 2021 00:12:23 +0800 (GMT+08:00)", 35 "September 17, 2012 10:09am", 36 "September 17, 2012 at 10:09am PST-08", 37 "September 17, 2012, 10:10:09", 38 "October 7, 1970", 39 "October 7th, 1970", 40 "12 Feb 2006, 19:17", 41 "12 Feb 2006 19:17", 42 "14 May 2019 19:11:40.164", 43 "7 oct 70", 44 "7 oct 1970", 45 "03 February 2013", 46 "1 July 2013", 47 "2013-Feb-03", 48 // dd/Mon/yyy alpha Months 49 "06/Jan/2008:15:04:05 -0700", 50 "06/Jan/2008 15:04:05 -0700", 51 // mm/dd/yy 52 "3/31/2014", 53 "03/31/2014", 54 "08/21/71", 55 "8/1/71", 56 "4/8/2014 22:05", 57 "04/08/2014 22:05", 58 "4/8/14 22:05", 59 "04/2/2014 03:00:51", 60 "8/8/1965 12:00:00 AM", 61 "8/8/1965 01:00:01 PM", 62 "8/8/1965 01:00 PM", 63 "8/8/1965 1:00 PM", 64 "8/8/1965 12:00 AM", 65 "4/02/2014 03:00:51", 66 "03/19/2012 10:11:59", 67 "03/19/2012 10:11:59.3186369", 68 // yyyy/mm/dd 69 "2014/3/31", 70 "2014/03/31", 71 "2014/4/8 22:05", 72 "2014/04/08 22:05", 73 "2014/04/2 03:00:51", 74 "2014/4/02 03:00:51", 75 "2012/03/19 10:11:59", 76 "2012/03/19 10:11:59.3186369", 77 // yyyy:mm:dd 78 "2014:3:31", 79 "2014:03:31", 80 "2014:4:8 22:05", 81 "2014:04:08 22:05", 82 "2014:04:2 03:00:51", 83 "2014:4:02 03:00:51", 84 "2012:03:19 10:11:59", 85 "2012:03:19 10:11:59.3186369", 86 // Chinese 87 "2014年04月08日", 88 // yyyy-mm-ddThh 89 "2006-01-02T15:04:05+0000", 90 "2009-08-12T22:15:09-07:00", 91 "2009-08-12T22:15:09", 92 "2009-08-12T22:15:09.988", 93 "2009-08-12T22:15:09Z", 94 "2017-07-19T03:21:51:897+0100", 95 "2019-05-29T08:41-04", // no seconds, 2 digit TZ offset 96 // yyyy-mm-dd hh:mm:ss 97 "2014-04-26 17:24:37.3186369", 98 "2012-08-03 18:31:59.257000000", 99 "2014-04-26 17:24:37.123", 100 "2013-04-01 22:43", 101 "2013-04-01 22:43:22", 102 "2014-12-16 06:20:00 UTC", 103 "2014-12-16 06:20:00 GMT", 104 "2014-04-26 05:24:37 PM", 105 "2014-04-26 13:13:43 +0800", 106 "2014-04-26 13:13:43 +0800 +08", 107 "2014-04-26 13:13:44 +09:00", 108 "2012-08-03 18:31:59.257000000 +0000 UTC", 109 "2015-09-30 18:48:56.35272715 +0000 UTC", 110 "2015-02-18 00:12:00 +0000 GMT", 111 "2015-02-18 00:12:00 +0000 UTC", 112 "2015-02-08 03:02:00 +0300 MSK m=+0.000000001", 113 "2015-02-08 03:02:00.001 +0300 MSK m=+0.000000001", 114 "2017-07-19 03:21:51+00:00", 115 "2014-04-26", 116 "2014-04", 117 "2014", 118 "2014-05-11 08:20:13,787", 119 // yyyy-mm-dd-07:00 120 "2020-07-20+08:00", 121 // mm.dd.yy 122 "3.31.2014", 123 "03.31.2014", 124 "08.21.71", 125 "2014.03", 126 "2014.03.30", 127 // yyyymmdd and similar 128 "20140601", 129 "20140722105203", 130 // yymmdd hh:mm:yy mysql log 131 // 080313 05:21:55 mysqld started 132 "171113 14:14:20", 133 // unix seconds, ms, micro, nano 134 "1332151919", 135 "1384216367189", 136 "1384216367111222", 137 "1384216367111222333", 138 139 // output of `date' command 140 "Mon Mar 15 15:12:26 +0800 2021", 141 "Mon Mar 15 07:12:26 +0000 2021", 142 143 "Mon Mar 15 15:12:26 CST 2021", 144 "Mon Mar 15 07:12:26 UTC 2021", 145 } 146 147 loc, err := time.LoadLocation("UTC") 148 if err != nil { 149 panic(err.Error()) 150 } 151 _ = loc 152 // time.Local = loc 153 154 for _, dateExample := range cases { 155 tm, err := dateparse.ParseLocal(dateExample) 156 if err != nil { 157 t.Logf("parse %s failed: %s", dateExample, err) 158 continue 159 } 160 161 t.Logf("% 32s : %v(%d)", dateExample, tm, tm.UnixNano()) 162 } 163 } 164 */