From 4bf5cad1d4f42dc8b7321e84fba8acf4ece5d6a1 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sat, 28 Aug 2021 17:53:27 -0400 Subject: datetime: Further implement Simplify concatenation, factor out formats, and determine date if not specified. --- (limited to 'src/datetime-formats.c') diff --git a/src/datetime-formats.c b/src/datetime-formats.c new file mode 100644 index 0000000..3c0d099 --- /dev/null +++ b/src/datetime-formats.c @@ -0,0 +1,434 @@ +/* + * Copyright (C) 2021 P. J. McDermott + * + * This file is part of @ + * + * @ is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * @ is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with @. If not, see . + */ + +/* Time only */ +" %I:%M:%S %p ", +" %H:%M:%S ", +" %I:%M %p ", +" %H:%M ", +" %I%M%S %p ", +" %H%M%S ", +" %I%M %p ", +" %H%M ", + +/* ISO 8601: 1969-12-31 delimited by "T" */ +" %Y-%m-%dT%H:%M:%S ", +" %Y-%m-%dT%H:%M ", + +/* ISO 8601: 19691231 delimited by "T" */ +" %Y%m%dT%H%M%S ", +" %Y%m%dT%H%M ", + +/* 1969-12-31 */ +" %Y-%m-%d %I:%M:%S %p ", +" %Y-%m-%d %H:%M:%S ", +" %Y-%m-%d %I:%M %p ", +" %Y-%m-%d %H:%M ", +" %Y-%m-%d %I%M%S %p ", +" %Y-%m-%d %H%M%S ", +" %Y-%m-%d %I%M %p ", +" %Y-%m-%d %H%M ", +" %I:%M:%S %p %Y-%m-%d ", +" %H:%M:%S %Y-%m-%d ", +" %I:%M %p %Y-%m-%d ", +" %H:%M %Y-%m-%d ", +" %I%M%S %p %Y-%m-%d ", +" %H%M%S %Y-%m-%d ", +" %I%M %p %Y-%m-%d ", +" %H%M %Y-%m-%d ", + +/* 19691231 */ +" %Y%m%d %I%M%S %p ", +" %Y%m%d %H%M%S ", +" %Y%m%d %I%M %p ", +" %Y%m%d %H%M ", +" %I%M%S %p %Y%m%d ", +" %H%M%S %Y%m%d ", +" %I%M %p %Y%m%d ", +" %H%M %Y%m%d ", + +/* 1969/12/31 */ +" %Y/%m/%d %I:%M:%S %p ", +" %Y/%m/%d %H:%M:%S ", +" %Y/%m/%d %I:%M %p ", +" %Y/%m/%d %H:%M ", +" %Y/%m/%d %I%M%S %p ", +" %Y/%m/%d %H%M%S ", +" %Y/%m/%d %I%M %p ", +" %Y/%m/%d %H%M ", +" %I:%M:%S %p %Y/%m/%d ", +" %H:%M:%S %Y/%m/%d ", +" %I:%M %p %Y/%m/%d ", +" %H:%M %Y/%m/%d ", +" %I%M%S %p %Y/%m/%d ", +" %H%M%S %Y/%m/%d ", +" %I%M %p %Y/%m/%d ", +" %H%M %Y/%m/%d ", + +/* 12-31-1969 */ +" %m-%d-%Y %I:%M:%S %p ", +" %m-%d-%Y %H:%M:%S ", +" %m-%d-%Y %I:%M %p ", +" %m-%d-%Y %H:%M ", +" %m-%d-%Y %I%M%S %p ", +" %m-%d-%Y %H%M%S ", +" %m-%d-%Y %I%M %p ", +" %m-%d-%Y %H%M ", +" %I:%M:%S %p %m-%d-%Y ", +" %H:%M:%S %m-%d-%Y ", +" %I:%M %p %m-%d-%Y ", +" %H:%M %m-%d-%Y ", +" %I%M%S %p %m-%d-%Y ", +" %H%M%S %m-%d-%Y ", +" %I%M %p %m-%d-%Y ", +" %H%M %m-%d-%Y ", + +/* 12/31/1969 */ +" %m/%d/%Y %I:%M:%S %p ", +" %m/%d/%Y %H:%M:%S ", +" %m/%d/%Y %I:%M %p ", +" %m/%d/%Y %H:%M ", +" %m/%d/%Y %I%M%S %p ", +" %m/%d/%Y %H%M%S ", +" %m/%d/%Y %I%M %p ", +" %m/%d/%Y %H%M ", + +/* 31 Dec 1969 */ +" %d %b %Y %I:%M:%S %p ", +" %d %b %Y %H:%M:%S ", +" %d %b %Y %I:%M %p ", +" %d %b %Y %H:%M ", +" %d %b %Y %I%M%S %p ", +" %d %b %Y %H%M%S ", +" %d %b %Y %I%M %p ", +" %d %b %Y %H%M ", +" %I:%M:%S %p %d %b %Y ", +" %H:%M:%S %d %b %Y ", +" %I:%M %p %d %b %Y ", +" %H:%M %d %b %Y ", +" %I%M%S %p %d %b %Y ", +" %H%M%S %d %b %Y ", +" %I%M %p %d %b %Y ", +" %H%M %d %b %Y ", + +/* 31-Dec-1969 */ +" %d-%b-%Y %I:%M:%S %p ", +" %d-%b-%Y %H:%M:%S ", +" %d-%b-%Y %I:%M %p ", +" %d-%b-%Y %H:%M ", +" %d-%b-%Y %I%M%S %p ", +" %d-%b-%Y %H%M%S ", +" %d-%b-%Y %I%M %p ", +" %d-%b-%Y %H%M ", +" %I:%M:%S %p %d-%b-%Y ", +" %H:%M:%S %d-%b-%Y ", +" %I:%M %p %d-%b-%Y ", +" %H:%M %d-%b-%Y ", +" %I%M%S %p %d-%b-%Y ", +" %H%M%S %d-%b-%Y ", +" %I%M %p %d-%b-%Y ", +" %H%M %d-%b-%Y ", + +/* 31/Dec/1969 */ +" %d/%b/%Y %I:%M:%S %p ", +" %d/%b/%Y %H:%M:%S ", +" %d/%b/%Y %I:%M %p ", +" %d/%b/%Y %H:%M ", +" %d/%b/%Y %I%M%S %p ", +" %d/%b/%Y %H%M%S ", +" %d/%b/%Y %I%M %p ", +" %d/%b/%Y %H%M ", +" %I:%M:%S %p %d/%b/%Y ", +" %H:%M:%S %d/%b/%Y ", +" %I:%M %p %d/%b/%Y ", +" %H:%M %d/%b/%Y ", +" %I%M%S %p %d/%b/%Y ", +" %H%M%S %d/%b/%Y ", +" %I%M %p %d/%b/%Y ", +" %H%M %d/%b/%Y ", + +/* Wed 31 Dec 1969 */ +" %a %d %b %Y %I:%M:%S %p ", +" %a %d %b %Y %H:%M:%S ", +" %a %d %b %Y %I:%M %p ", +" %a %d %b %Y %H:%M ", +" %a %d %b %Y %I%M%S %p ", +" %a %d %b %Y %H%M%S ", +" %a %d %b %Y %I%M %p ", +" %a %d %b %Y %H%M ", +" %I:%M:%S %p %a %d %b %Y ", +" %H:%M:%S %a %d %b %Y ", +" %I:%M %p %a %d %b %Y ", +" %H:%M %a %d %b %Y ", +" %I%M%S %p %a %d %b %Y ", +" %H%M%S %a %d %b %Y ", +" %I%M %p %a %d %b %Y ", +" %H%M %a %d %b %Y ", + +/* Wed 31-Dec-1969 */ +" %a %d-%b-%Y %I:%M:%S %p ", +" %a %d-%b-%Y %H:%M:%S ", +" %a %d-%b-%Y %I:%M %p ", +" %a %d-%b-%Y %H:%M ", +" %a %d-%b-%Y %I%M%S %p ", +" %a %d-%b-%Y %H%M%S ", +" %a %d-%b-%Y %I%M %p ", +" %a %d-%b-%Y %H%M ", +" %I:%M:%S %p %a %d-%b-%Y ", +" %H:%M:%S %a %d-%b-%Y ", +" %I:%M %p %a %d-%b-%Y ", +" %H:%M %a %d-%b-%Y ", +" %I%M%S %p %a %d-%b-%Y ", +" %H%M%S %a %d-%b-%Y ", +" %I%M %p %a %d-%b-%Y ", +" %H%M %a %d-%b-%Y ", + +/* Wed 31/Dec/1969 */ +" %a %d/%b/%Y %I:%M:%S %p ", +" %a %d/%b/%Y %H:%M:%S ", +" %a %d/%b/%Y %I:%M %p ", +" %a %d/%b/%Y %H:%M ", +" %a %d/%b/%Y %I%M%S %p ", +" %a %d/%b/%Y %H%M%S ", +" %a %d/%b/%Y %I%M %p ", +" %a %d/%b/%Y %H%M ", +" %I:%M:%S %p %a %d/%b/%Y ", +" %H:%M:%S %a %d/%b/%Y ", +" %I:%M %p %a %d/%b/%Y ", +" %H:%M %a %d/%b/%Y ", +" %I%M%S %p %a %d/%b/%Y ", +" %H%M%S %a %d/%b/%Y ", +" %I%M %p %a %d/%b/%Y ", +" %H%M %a %d/%b/%Y ", + +/* Wed, 31 Dec 1969 */ +" %a, %d %b %Y %I:%M:%S %p ", +" %a, %d %b %Y %H:%M:%S ", +" %a, %d %b %Y %I:%M %p ", +" %a, %d %b %Y %H:%M ", +" %a, %d %b %Y %I%M%S %p ", +" %a, %d %b %Y %H%M%S ", +" %a, %d %b %Y %I%M %p ", +" %a, %d %b %Y %H%M ", +" %I:%M:%S %p %a, %d %b %Y ", +" %H:%M:%S %a, %d %b %Y ", +" %I:%M %p %a, %d %b %Y ", +" %H:%M %a, %d %b %Y ", +" %I%M%S %p %a, %d %b %Y ", +" %H%M%S %a, %d %b %Y ", +" %I%M %p %a, %d %b %Y ", +" %H%M %a, %d %b %Y ", + +/* Wed, 31-Dec-1969 */ +" %a, %d-%b-%Y %I:%M:%S %p ", +" %a, %d-%b-%Y %H:%M:%S ", +" %a, %d-%b-%Y %I:%M %p ", +" %a, %d-%b-%Y %H:%M ", +" %a, %d-%b-%Y %I%M%S %p ", +" %a, %d-%b-%Y %H%M%S ", +" %a, %d-%b-%Y %I%M %p ", +" %a, %d-%b-%Y %H%M ", +" %I:%M:%S %p %a, %d-%b-%Y ", +" %H:%M:%S %a, %d-%b-%Y ", +" %I:%M %p %a, %d-%b-%Y ", +" %H:%M %a, %d-%b-%Y ", +" %I%M%S %p %a, %d-%b-%Y ", +" %H%M%S %a, %d-%b-%Y ", +" %I%M %p %a, %d-%b-%Y ", +" %H%M %a, %d-%b-%Y ", + +/* Wed, 31/Dec/1969 */ +" %a, %d/%b/%Y %I:%M:%S %p ", +" %a, %d/%b/%Y %H:%M:%S ", +" %a, %d/%b/%Y %I:%M %p ", +" %a, %d/%b/%Y %H:%M ", +" %a, %d/%b/%Y %I%M%S %p ", +" %a, %d/%b/%Y %H%M%S ", +" %a, %d/%b/%Y %I%M %p ", +" %a, %d/%b/%Y %H%M ", +" %I:%M:%S %p %a, %d/%b/%Y ", +" %H:%M:%S %a, %d/%b/%Y ", +" %I:%M %p %a, %d/%b/%Y ", +" %H:%M %a, %d/%b/%Y ", +" %I%M%S %p %a, %d/%b/%Y ", +" %H%M%S %a, %d/%b/%Y ", +" %I%M %p %a, %d/%b/%Y ", +" %H%M %a, %d/%b/%Y ", + +/* Dec 31, 1969 */ +" %b %d, %Y %I:%M:%S %p ", +" %b %d, %Y %H:%M:%S ", +" %b %d, %Y %I:%M %p ", +" %b %d, %Y %H:%M ", +" %b %d, %Y %I%M%S %p ", +" %b %d, %Y %H%M%S ", +" %b %d, %Y %I%M %p ", +" %b %d, %Y %H%M ", +" %I:%M:%S %p %b %d, %Y ", +" %H:%M:%S %b %d, %Y ", +" %I:%M %p %b %d, %Y ", +" %H:%M %b %d, %Y ", +" %I%M%S %p %b %d, %Y ", +" %H%M%S %b %d, %Y ", +" %I%M %p %b %d, %Y ", +" %H%M %b %d, %Y ", + +/* Dec-31-1969 */ +" %b-%d-%Y %I:%M:%S %p ", +" %b-%d-%Y %H:%M:%S ", +" %b-%d-%Y %I:%M %p ", +" %b-%d-%Y %H:%M ", +" %b-%d-%Y %I%M%S %p ", +" %b-%d-%Y %H%M%S ", +" %b-%d-%Y %I%M %p ", +" %b-%d-%Y %H%M ", +" %I:%M:%S %p %b-%d-%Y ", +" %H:%M:%S %b-%d-%Y ", +" %I:%M %p %b-%d-%Y ", +" %H:%M %b-%d-%Y ", +" %I%M%S %p %b-%d-%Y ", +" %H%M%S %b-%d-%Y ", +" %I%M %p %b-%d-%Y ", +" %H%M %b-%d-%Y ", + +/* Dec/31/1969 */ +" %b/%d/%Y %I:%M:%S %p ", +" %b/%d/%Y %H:%M:%S ", +" %b/%d/%Y %I:%M %p ", +" %b/%d/%Y %H:%M ", +" %b/%d/%Y %I%M%S %p ", +" %b/%d/%Y %H%M%S ", +" %b/%d/%Y %I%M %p ", +" %b/%d/%Y %H%M ", +" %I:%M:%S %p %b/%d/%Y ", +" %H:%M:%S %b/%d/%Y ", +" %I:%M %p %b/%d/%Y ", +" %H:%M %b/%d/%Y ", +" %I%M%S %p %b/%d/%Y ", +" %H%M%S %b/%d/%Y ", +" %I%M %p %b/%d/%Y ", +" %H%M %b/%d/%Y ", + +/* Wed Dec 31, 1969 */ +" %a %b %d, %Y %I:%M:%S %p ", +" %a %b %d, %Y %H:%M:%S ", +" %a %b %d, %Y %I:%M %p ", +" %a %b %d, %Y %H:%M ", +" %a %b %d, %Y %I%M%S %p ", +" %a %b %d, %Y %H%M%S ", +" %a %b %d, %Y %I%M %p ", +" %a %b %d, %Y %H%M ", +" %I:%M:%S %p %a %b %d, %Y ", +" %H:%M:%S %a %b %d, %Y ", +" %I:%M %p %a %b %d, %Y ", +" %H:%M %a %b %d, %Y ", +" %I%M%S %p %a %b %d, %Y ", +" %H%M%S %a %b %d, %Y ", +" %I%M %p %a %b %d, %Y ", +" %H%M %a %b %d, %Y ", + +/* Wed Dec-31-1969 */ +" %a %b-%d-%Y %I:%M:%S %p ", +" %a %b-%d-%Y %H:%M:%S ", +" %a %b-%d-%Y %I:%M %p ", +" %a %b-%d-%Y %H:%M ", +" %a %b-%d-%Y %I%M%S %p ", +" %a %b-%d-%Y %H%M%S ", +" %a %b-%d-%Y %I%M %p ", +" %a %b-%d-%Y %H%M ", +" %I:%M:%S %p %a %b-%d-%Y ", +" %H:%M:%S %a %b-%d-%Y ", +" %I:%M %p %a %b-%d-%Y ", +" %H:%M %a %b-%d-%Y ", +" %I%M%S %p %a %b-%d-%Y ", +" %H%M%S %a %b-%d-%Y ", +" %I%M %p %a %b-%d-%Y ", +" %H%M %a %b-%d-%Y ", + +/* Wed Dec/31/1969 */ +" %a %b/%d/%Y %I:%M:%S %p ", +" %a %b/%d/%Y %H:%M:%S ", +" %a %b/%d/%Y %I:%M %p ", +" %a %b/%d/%Y %H:%M ", +" %a %b/%d/%Y %I%M%S %p ", +" %a %b/%d/%Y %H%M%S ", +" %a %b/%d/%Y %I%M %p ", +" %a %b/%d/%Y %H%M ", +" %I:%M:%S %p %a %b/%d/%Y ", +" %H:%M:%S %a %b/%d/%Y ", +" %I:%M %p %a %b/%d/%Y ", +" %H:%M %a %b/%d/%Y ", +" %I%M%S %p %a %b/%d/%Y ", +" %H%M%S %a %b/%d/%Y ", +" %I%M %p %a %b/%d/%Y ", +" %H%M %a %b/%d/%Y ", + +/* Wed, Dec 31, 1969 */ +" %a, %b %d, %Y %I:%M:%S %p ", +" %a, %b %d, %Y %H:%M:%S ", +" %a, %b %d, %Y %I:%M %p ", +" %a, %b %d, %Y %H:%M ", +" %a, %b %d, %Y %I%M%S %p ", +" %a, %b %d, %Y %H%M%S ", +" %a, %b %d, %Y %I%M %p ", +" %a, %b %d, %Y %H%M ", +" %I:%M:%S %p %a, %b %d, %Y ", +" %H:%M:%S %a, %b %d, %Y ", +" %I:%M %p %a, %b %d, %Y ", +" %H:%M %a, %b %d, %Y ", +" %I%M%S %p %a, %b %d, %Y ", +" %H%M%S %a, %b %d, %Y ", +" %I%M %p %a, %b %d, %Y ", +" %H%M %a, %b %d, %Y ", + +/* Wed, Dec-31-1969 */ +" %a, %b-%d-%Y %I:%M:%S %p ", +" %a, %b-%d-%Y %H:%M:%S ", +" %a, %b-%d-%Y %I:%M %p ", +" %a, %b-%d-%Y %H:%M ", +" %a, %b-%d-%Y %I%M%S %p ", +" %a, %b-%d-%Y %H%M%S ", +" %a, %b-%d-%Y %I%M %p ", +" %a, %b-%d-%Y %H%M ", +" %I:%M:%S %p %a, %b-%d-%Y ", +" %H:%M:%S %a, %b-%d-%Y ", +" %I:%M %p %a, %b-%d-%Y ", +" %H:%M %a, %b-%d-%Y ", +" %I%M%S %p %a, %b-%d-%Y ", +" %H%M%S %a, %b-%d-%Y ", +" %I%M %p %a, %b-%d-%Y ", +" %H%M %a, %b-%d-%Y ", + +/* Wed, Dec/31/1969 */ +" %a, %b/%d/%Y %I:%M:%S %p ", +" %a, %b/%d/%Y %H:%M:%S ", +" %a, %b/%d/%Y %I:%M %p ", +" %a, %b/%d/%Y %H:%M ", +" %a, %b/%d/%Y %I%M%S %p ", +" %a, %b/%d/%Y %H%M%S ", +" %a, %b/%d/%Y %I%M %p ", +" %a, %b/%d/%Y %H%M ", +" %I:%M:%S %p %a, %b/%d/%Y ", +" %H:%M:%S %a, %b/%d/%Y ", +" %I:%M %p %a, %b/%d/%Y ", +" %H:%M %a, %b/%d/%Y ", +" %I%M%S %p %a, %b/%d/%Y ", +" %H%M%S %a, %b/%d/%Y ", +" %I%M %p %a, %b/%d/%Y ", +" %H%M %a, %b/%d/%Y ", -- cgit v0.9.1