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  */