Skip to content

A Go library that dates any time string - no swiping, just smart time layout detection! ⏳🎯

License

Notifications You must be signed in to change notification settings

nodivbyzero/go-anydate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

go-anydate

Attempts to detect the correct Go time layout format for parsing a given time string. It analyzes the input time string and returns a corresponding time format layout that can be used with time.Parse() or time.Format().

go-anydate Release Go Test Doc MIT license

Install

go get -u github.com/nodivbyzero/go-anydate

Usage

Calculating time based on current time

import "github.com/nodivbyzero/go-anydate"

str := "2024-11-14 22:43:57"
got, err := DetectFormat(str) // got = 2006-01-02 15:04:05

date, err := time.Parse(got, str)

Supported date formats

"2024"                                     | "2006"
"20241124"                                 | "20060102"
"20241125132431"                           | "20060102150405"
"2024-11"                                  | "2006-01"
"2024/11"                                  | "2006/01"
"2024.11"                                  | "2006.01"
"2024-11-26"                               | "2006-01-02"
"2024/11/26"                               | "2006/01/02"
"2024.11.26"                               | "2006.01.02"
"2024-9-24"                                | "2006-1-02"
"2024/9/24"                                | "2006/1/02"
"2024.9.24"                                | "2006.1.02"
"2024-9-3"                                 | "2006-1-2"
"2024/9/3"                                 | "2006/1/2"
"2024.9.3"                                 | "2006.1.2"
"03-14-2024"                               | "01-02-2006"
"03/14/2024"                               | "01/02/2006"
"03.14.2024"                               | "01.02.2006"
"03-14-24"                                 | "01-02-06"
"03/14/24"                                 | "01/02/06"
"03.14.24"                                 | "01.02.06"
"3-31-2024"                                | "1-02-2006"
"3/31/2024"                                | "1/02/2006"
"3.31.2024"                                | "1.02.2006"
"8-1-24"                                   | "1-2-06"
"8/1/24"                                   | "1/2/06"
"8.1.24"                                   | "1.2.06"
"2024-11-14 22:43"                         | "2006-01-02 15:04"
"2024/11/14 22:43"                         | "2006/01/02 15:04"
"2024.11.14 22:43"                         | "2006.01.02 15:04"
"2024-11-14 22:43:57"                      | "2006-01-02 15:04:05"
"2024/11/14 22:43:57"                      | "2006/01/02 15:04:05"
"2024.11.14 22:43:57"                      | "2006.01.02 15:04:05"
"2024-11-14 10:43 AM"                      | "2006-01-02 15:04 PM"
"2024-11-14 10:43AM"                       | "2006-01-02 15:04PM"
"2024/11/14 10:43 AM"                      | "2006/01/02 15:04 PM"
"2024.11.14 10:43 AM"                      | "2006.01.02 15:04 PM"
"2024-11-14 12:43 PM"                      | "2006-01-02 15:04 PM"
"2024/11/14 12:43 PM"                      | "2006/01/02 15:04 PM"
"2024.11.14 12:43 PM"                      | "2006.01.02 15:04 PM"
"2024-11-14 10:43 am"                      | "2006-01-02 15:04 pm"
"2024/11/14 10:43 am"                      | "2006/01/02 15:04 pm"
"2024.11.14 10:43 am"                      | "2006.01.02 15:04 pm"
"2024-11-19 12:43:57 PM"                   | "2006-01-02 15:04:05 PM"
"2024/11/19 12:43:57 PM"                   | "2006/01/02 15:04:05 PM"
"2024.11.19 12:43:57 PM"                   | "2006.01.02 15:04:05 PM"
"2024-1-3 22:43"                           | "2006-1-2 15:04"
"2024/1/3 22:43"                           | "2006/1/2 15:04"
"2024.1.3 22:43"                           | "2006.1.2 15:04"
"2024-1-3 12:43 PM"                        | "2006-1-2 15:04 PM"
"2024/1/3 12:43 PM"                        | "2006/1/2 15:04 PM"
"2024.1.3 12:43 PM"                        | "2006.1.2 15:04 PM"
"2024-1-3 12:43 pm"                        | "2006-1-2 15:04 pm"
"2024/1/3 12:43 pm"                        | "2006/1/2 15:04 pm"
"2024.1.3 12:43 pm"                        | "2006.1.2 15:04 pm"
"2024-1-3 22:43:48"                        | "2006-1-2 15:04:05"
"2024/1/3 22:43:48"                        | "2006/1/2 15:04:05"
"2024.1.3 22:43:48"                        | "2006.1.2 15:04:05"
"2024-11-14 12:39:22"                      | "2006-01-02 15:04:05"
"2024/11/14 12:39:22"                      | "2006/01/02 15:04:05"
"2024.11.14 12:39:22"                      | "2006.01.02 15:04:05"
"03-14-2024 22:43"                         | "01-02-2006 15:04"
"03/14/2024 22:43"                         | "01/02/2006 15:04"
"03.14.2024 22:43"                         | "01.02.2006 15:04"
"03-14-2024 12:43 PM"                      | "01-02-2006 15:04 PM"
"03/14/2024 12:43 PM"                      | "01/02/2006 15:04 PM"
"03.14.2024 12:43 PM"                      | "01.02.2006 15:04 PM"
"03-14-2024 10:43 am"                      | "01-02-2006 15:04 pm"
"03/14/2024 10:43 am"                      | "01/02/2006 15:04 pm"
"03.14.2024 10:43 am"                      | "01.02.2006 15:04 pm"
"03-14-2024 22:43:39"                      | "01-02-2006 15:04:05"
"03/14/2024 22:43:39"                      | "01/02/2006 15:04:05"
"03.14.2024 22:43:39"                      | "01.02.2006 15:04:05"
"03-19-2024 10:43:39 AM"                   | "01-02-2006 15:04:05 PM"
"03/19/2024 10:43:39 AM"                   | "01/02/2006 15:04:05 PM"
"03.19.2024 10:43:39 AM"                   | "01.02.2006 15:04:05 PM"
"3-31-2024 22:43"                          | "1-02-2006 15:04"
"3/31/2024 22:43"                          | "1/02/2006 15:04"
"3.31.2024 22:43"                          | "1.02.2006 15:04"
"3-31-2024 22:43:41"                       | "1-02-2006 15:04:05"
"3/31/2024 22:43:41"                       | "1/02/2006 15:04:05"
"3.31.2024 22:43:41"                       | "1.02.2006 15:04:05"
"3-1-2024 22:43"                           | "1-2-2006 15:04"
"3/1/2024 22:43"                           | "1/2/2006 15:04"
"3.1.2024 22:43"                           | "1.2.2006 15:04"
"3-1-2024 22:43:42"                        | "1-2-2006 15:04:05"
"3/1/2024 22:43:42"                        | "1/2/2006 15:04:05"
"3.1.2024 22:43:42"                        | "1.2.2006 15:04:05"
"8-1-24 22:43"                             | "1-2-06 15:04"
"8/1/24 22:43"                             | "1/2/06 15:04"
"8.1.24 22:43"                             | "1.2.06 15:04"
"8-1-24 22:43:44"                          | "1-2-06 15:04:05"
"8/1/24 22:43:44"                          | "1/2/06 15:04:05"
"8.1.24 22:43:44"                          | "1.2.06 15:04:05"
"2024-11-14T12:40:15"                      | "2006-01-02T15:04:05"
"2024/11/14T12:40:15"                      | "2006/01/02T15:04:05"
"2024.11.14T12:40:15"                      | "2006.01.02T15:04:05"
"2024-11-14T13:57:23.988"                  | "2006-01-02T15:04:05.999"
"2024-11-14T13:57:23.988132"               | "2006-01-02T15:04:05.999999"
"2024-11-14T13:57:23.988132456"            | "2006-01-02T15:04:05.999999999"
"2024-11-14T13:57:23.900"                  | "2006-01-02T15:04:05.000"
"2024-11-14T13:57:23.988000"               | "2006-01-02T15:04:05.000000"
"2024-11-14T13:57:23.988132000"            | "2006-01-02T15:04:05.000000000"
"2024-11-14T16:15:09Z"                     | "2006-01-02T15:04:05Z"
"2024/11/19 16:14:52.3276369"              | "2006/01/02 15:04:05.9999999"
"2024-Nov-19"                              | "2006-Jan-02"
"2024-November-19"                         | "2006-January-02"
"November 22, 2024"                        | "January 02, 2006"
"Nov 22, 2024"                             | "Jan 02, 2006"
"Nov 2, 2024"                              | "Jan 2, 2006"
"Nov 22, 24"                               | "Jan 02, 06"
"Nov 2, 24"                                | "Jan 2, 06"
"Nov. 22, 2024"                            | "Jan. 02, 2006"
"Nov. 22, 24"                              | "Jan. 02, 06"
"Nov. 2, 24"                               | "Jan. 2, 06"
"22 November 2024"                         | "02 January 2006"
"2 November 2024"                          | "2 January 2006"
"22 Nov 2024"                              | "02 Jan 2006"
"2 Nov 2024"                               | "2 Jan 2006"
"22 Nov 24"                                | "02 Jan 06"
"2 Nov 24"                                 | "2 Jan 06"
"22/Nov/2024"                              | "02/Jan/2006"
"2/Nov/2024"                               | "2/Jan/2006"
"November 23, 2024 12:49"                  | "January 02, 2006 15:04"
"November 23, 2024 12:49:03"               | "January 02, 2006 15:04:05"
"November 3, 2024 12:49"                   | "January 2, 2006 15:04"
"November 3, 2024 12:49:03"                | "January 2, 2006 15:04:05"
"November 23, 2009 2:07 PM"                | "January 02, 2006 3:04 PM"
"November 23, 2009 2:07:19 PM"             | "January 02, 2006 3:04:05 PM"
"November 3, 2009 2:07 PM"                 | "January 2, 2006 3:04 PM"
"November 3, 2009 2:07:19 PM"              | "January 2, 2006 3:04:05 PM"
"November 23, 2024, 12:49:03"              | "January 02, 2006, 15:04:05"
"November 23, 2024 2:33pm"                 | "January 02, 2006 3:04pm"
"Nov 23 3:01pm"                            | "Jan 02 3:04pm"
"Nov 23 15:04:05.988"                      | "Jan 02 15:04:05.999"
"Nov 23 15:04:05.988132"                   | "Jan 02 15:04:05.999999"
"Nov 23 15:04:05.988132456"                | "Jan 02 15:04:05.999999999"
"23 Nov 2024, 15:18"                       | "02 Jan 2006, 15:04"
"3 Nov 2024, 15:18"                        | "2 Jan 2006, 15:04"
"23 Nov 2024 16:59"                        | "02 Jan 2006 15:04"
"3 Nov 2024 16:59"                         | "2 Jan 2006 15:04"
"23 Nov 2024 17:01:40.162"                 | "02 Jan 2006 15:04:05.999"
"23/Nov/2024 17:03:05"                     | "02/Jan/2006 15:04:05"
"23.Nov.2024 17:03:05"                     | "02.Jan.2006 15:04:05"
"23-Nov-2024 17:03:05"                     | "02-Jan-2006 15:04:05"
"Sat Nov 23 17:10:06 2024"                 | "Mon Jan 02 15:04:05 2006"
"Tue Nov 5 08:04:06 2024"                  | "Mon Jan 2 15:04:05 2006"
"Tue, 26 Nov 2024 15:04:05"                | "Mon, 02 Jan 2006 15:04:05"
"Tuesday Nov 5 08:26:06 2024"              | "Monday Jan 2 15:04:05 2006"
"Tuesday, 26 Nov 2024 08:26:05"            | "Monday, 02 Jan 2006 15:04:05"
"Tue 5 Nov 2024 08:29:06"                  | "Mon 2 Jan 2006 15:04:05"
"Tue 26 Nov 2024 08:29:06"                 | "Mon 02 Jan 2006 15:04:05"
"Tuesday, 26-Nov-24 08:35:05"              | "Monday, 02-Jan-06 15:04:05"
"2024-11-26T11:48:26.371Z"                 | "2006-01-02T15:04:05.999Z"
"2024-11-26T11:45:25Z"                     | "2006-01-02T15:04:05Z"
"2024-11-26T12:08:05+0900"                 | "2006-01-02T15:04:05-0700"
"2024-11-26T12:21:05-0700"                 | "2006-01-02T15:04:05-0700"
"Tuesday, November 26 2024"                | "Monday, January 02 2006"
"Tuesday November 26 2024"                 | "Monday January 02 2006"
"Tue, November 26 2024"                    | "Mon, January 02 2006"
"Tue November 26 2024"                     | "Mon January 02 2006"
"Sun, November 26"                         | "Mon, January 02"
"Sun November 26"                          | "Mon January 02"
"November 26"                              | "January 02"
"Nov 26"                                   | "Jan 02"
"26 November"                              | "02 January"
"26 Nov"                                   | "02 Jan"
"2024-11-27 09:33:51+09:00"                | "2006-01-02 15:04:05-07:00"
"2025-11-27+09:00"                         | "2006-01-02-07:00"
"2024-11-26 10:00:43 +0700"                | "2006-01-02 15:04:05 -0700"
"2024-11-27 10:04:44 +09:00"               | "2006-01-02 15:04:05 -07:00"
"Wed, 27 Nov 2024 10:05:36 +0000"          | "Mon, 02 Jan 2006 15:04:05 -0700"
"27/Nov/2024 15:04:05 -0700"               | "02/Jan/2006 15:04:05 -0700"
"Wed, 27 Nov 2024 10:10:36 -0700"          | "Mon, 02 Jan 2006 15:04:05 -0700"
"2024-11-27T08:15-08"                      | "2006-01-02T15:04-07"
"Wed Nov 27 10:19:05 -0700 2024"           | "Mon Jan 02 15:04:05 -0700 2006"
"2024-11-27T10:26:09-09:00"                | "2006-01-02T15:04:05-07:00"
"Thu Nov 28 11:37:05 MST 2024"             | "Mon Jan 02 15:04:05 MST 2006"
"2024-11-28 12:07:00 UTC"                  | "2006-01-02 15:04:05 MST"
"Thursday, 28-Nov-24 12:11:05 MST"         | "Monday, 02-Jan-06 15:04:05 MST"
"Thu, 28 Nov 2024 11:37:05 MST"            | "Mon, 02 Jan 2006 15:04:05 MST"
"Thu 28 Nov 2024 12:17:09 PM UTC"          | "Mon 02 Jan 2006 15:04:05 PM MST"
"Thursday November 28 2024 10:09am PST-08" | "Monday January 02 2006pm MST-07"
"Fri Nov 29 10:17:11 PST+0800 2024"        | "Mon Jan 02 15:04:05 MST-0700
"2024-12-05 17:04:00 +0000 GMT"            | "2006-01-02 15:04:05 -0700 MST"
"3:59PM"                                   | "3:04PM"
"3-12-2024 1:12 PM"                        | "1-02-2006 3:04 PM"
"12/3/2024 1:19 PM"                        | "01/2/2006 3:04 PM"
"13:22:05.000"                             | "15:04:05.000"
"12/12/2024 13:24:59.3186369"              | "01/02/2006 15:04:05.9999999"
"2024-12-12 13:26:59.257000000 +0000 UTC"  | "2006-01-02:05.000000000 -0700 MST"
"Thu, 12 Dec 2024 13:29:13 +0200 (CEST)"   | "Mon, 02 Jan 2006 15:04:05 (MST)"
"31-01-2024"                               | "02-01-2006"
"2024:12:31"                               | "2006:01:02"
"2024:12:31 16:01:51"                      | "2006:01:02 15:04:05"
"2024:12:31 16:03:51.3127369"              | "2006:01:02 15:04:05.9999999"
"12:12:2024 16:27:09"                      | "01:02:2006 15:04:05"
"12/Dec/2024:16:36:17 -0700"               | "02/Jan/2006:15:04:05 -0700"
"18:27:05,000"                             | "15:04:05,000"
"2024-12-14T12:49:09.99999999Z"            | "2006-01-02T15:04:05.99999999Z"
"2024-12-14T12:59+0730"                    | "2006-01-02T15:04-0700"
"Sat, 14 Dec 2024 3:3:3 PST"               | "Mon, 02 Jan 2006 3:4:5 MST"

License

Released under the MIT License.

About

A Go library that dates any time string - no swiping, just smart time layout detection! ⏳🎯

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages