Skip to content

Commit

Permalink
add addtional time formats (#3142)
Browse files Browse the repository at this point in the history
  • Loading branch information
AFine-gs committed Oct 3, 2024
1 parent 5a9dab3 commit 7105a05
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -649,5 +649,5 @@ function meta::pure::functions::date::toEpochValue(d:Date[1], unit:DurationUnit[
function meta::pure::functions::date::validateDateTimeFormat(dateTimeFormat:String[1]):Boolean[1]
{
// Supported Formats : yyyy, yyyy-M, yyyy-MM, yyyy-MM-d, yyyy-M-d, yyyy-MM-dd, yyyy/mm/dd, yyyyMMdd, yyyyMd, yyMd, dd/MM/yyyy, MM/dd/yyyy, MM/dd/yyyy "at" hh:mma z, yyyy-MM-dd HH:mm:ss, yyyy-MM-dd h:mm:ssa, yyyy-MM-dd HH:mm:ss.SSS, yyyy-MM-dd HH:mm:ss.SSSX, yyyy-MM-dd HH:mm:ss.SSSZ, yyyy-MM-dd HH:mm:ss.SSS z, yyyy-MM-dd HH:mm:ss.SSSS z, yyyy-MM-dd"T"HH:mm:ss, yyyy-MM-dd"T"HH:mm:ssZ, yyyy-MM-dd"T"HH:mm:ss.SSS, yyyy-MM-dd"T"HH:mm:ss.SSSZ, yyyy-MM-dd"T"HH:mm:ss.SSSSZ, yy-MM-dd"T"HH:mm:ss."000000", , 'yyyy-MM-dd"T"HH:mm:ss."000000"X', [EST]yyyy-MM-dd HH:mm:ss.SSSZ, [CST]yyyy-MM-dd HH:mm:ss.SSS z, [CET]yyyy-MM-dd HH:mm:ss.SSSX, [EST]yyyy-MM-dd and other timezones
$dateTimeFormat->matches('(\\[[A-Z][A-Z]([ACDKLMNORSTUVW])?([DSWT])?([T])?\\])?(MM/dd/|dd/MM/)?(?:y{4}|y{2})(([-/])?[mM]{1,2}(([-/])?(d{1,2}) *((\"T\"|T)?(H{2}|h{1}):m{2}:s{2}.?((?:S{3,4} *[zZX]?|\"000000\"))?)?)?)? *(\"at\")? *(h{2}:m{2}a)? *[zZxX]?');
$dateTimeFormat->matches('(\\[[A-Z][A-Z]([ACDKLMNORSTUVW])?([DSWT])?([T])?\\])?(MM/dd/|dd/MM/|MM-dd-|dd-MM-)?(?:y{4}|y{2})(([-/])?[mM]{1,2}(([-/])?(d{1,2}) *((\"T\"|T)?(H{2}|h{1}):m{2}:s{2}.?((?:S{3,4} *[zZX]?|\"000000\"))?)?)?)? *(\"at\")? *(h{2}:m{2}a)? *[zZxX]?');
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ function <<test.Test>> meta::pure::functions::date::tests::testSystemDefaultTime

function <<test.Test>> meta::pure::functions::date::tests::testValidateDateTimeFormat():Boolean[1]
{
let formats = ['yyyy', 'yyyy-M', 'yyyy-MM', 'yyyy-MM-d', 'yyyy-M-d', 'yyyy-MM-dd', 'yyyy/mm/dd', 'yyyyMMdd', 'yyyyMd', 'yyMd', 'dd/MM/yyyy', 'MM/dd/yyyy', 'MM/dd/yyyy "at" hh:mma z', 'yyyy-MM-dd HH:mm:ss', 'yyyy-MM-dd h:mm:ssa', 'yyyy-MM-dd HH:mm:ss.SSS', 'yyyy-MM-dd HH:mm:ss.SSSX', 'yyyy-MM-dd HH:mm:ss.SSSZ', 'yyyy-MM-dd HH:mm:ss.SSS z', 'yyyy-MM-dd HH:mm:ss.SSSS z', 'yyyy-MM-dd"T"HH:mm:ss', 'yyyy-MM-dd"T"HH:mm:ssZ', 'yyyy-MM-dd"T"HH:mm:ssZZ', 'yyyy-MM-dd"T"HH:mm:ss.SSS', 'yyyy-MM-dd"T"HH:mm:ss.SSSZ', 'yyyy-MM-dd"T"HH:mm:ss.SSSSZ', 'yy-MM-dd"T"HH:mm:ss."000000"', 'yyyy-MM-dd"T"HH:mm:ss."000000"X', '[EST]yyyy-MM-dd HH:mm:ss.SSSZ', '[CST]yyyy-MM-dd HH:mm:ss.SSS z', '[CET]yyyy-MM-dd HH:mm:ss.SSSX', '[EST]yyyy-MM-dd'];
let formats = ['yyyy', 'yyyy-M', 'yyyy-MM', 'yyyy-MM-d', 'yyyy-M-d', 'yyyy-MM-dd', 'yyyy/mm/dd', 'yyyyMMdd', 'yyyyMd', 'yyMd', 'dd/MM/yyyy', 'MM/dd/yyyy','MM-dd-yyyy','dd-MM-yyyy', 'MM/dd/yyyy "at" hh:mma z', 'yyyy-MM-dd HH:mm:ss', 'yyyy-MM-dd h:mm:ssa', 'yyyy-MM-dd HH:mm:ss.SSS', 'yyyy-MM-dd HH:mm:ss.SSSX', 'yyyy-MM-dd HH:mm:ss.SSSZ', 'yyyy-MM-dd HH:mm:ss.SSS z', 'yyyy-MM-dd HH:mm:ss.SSSS z', 'yyyy-MM-dd"T"HH:mm:ss', 'yyyy-MM-dd"T"HH:mm:ssZ', 'yyyy-MM-dd"T"HH:mm:ssZZ', 'yyyy-MM-dd"T"HH:mm:ss.SSS', 'yyyy-MM-dd"T"HH:mm:ss.SSSZ', 'yyyy-MM-dd"T"HH:mm:ss.SSSSZ', 'yy-MM-dd"T"HH:mm:ss."000000"', 'yyyy-MM-dd"T"HH:mm:ss."000000"X', '[EST]yyyy-MM-dd HH:mm:ss.SSSZ', '[CST]yyyy-MM-dd HH:mm:ss.SSS z', '[CET]yyyy-MM-dd HH:mm:ss.SSSX', '[EST]yyyy-MM-dd'];
assert($formats->map(format | validateDateTimeFormat($format))->assertNotContains(false));

let invalidFormats = ['yyy', 'yyyyy-M', 'yyyy-MMM', 'yyyy-MM-ddd', 'dd/mm/yyyy', 'MM/ddyy', 'MM/dd/yyyy "at" hh:ma z', 'yyyy-MMM-dd HH:mm:ss', 'yyyy-MM-dd hh:mm:ssa', 'yyyy-MM-dd HH:mm:ss.SSZ', 'yyyy-MM-dd HH:mm:ss.SZ', 'yyyy-MM-dd"TT"HH:mm:ss', 'yyyy-MM-dd"T"HH:mm:sss.SSS', 'yyyy-MM-dd""HH:mm:ss.SSSZ', 'yyyy-MM-dd"T"HH:mm:ss.SSSSSZ', 'yy-MM-dd"T"HH:mm:ss."00"', '(EST)yyyy-MM-dd'];
Expand Down

0 comments on commit 7105a05

Please sign in to comment.