Datetime
Watchmen use [0-9] part of string to parse date time. Thus, supporting for timezone part is limited.
Supported formats are defined in watchmen-data-kernel module, visit here for more details.
Default Formats​
Time​
There are 2 default formats for time:
%H%M%S,%H%M.
Date​
There are 3 default formats for date:
%Y%m%d,%d%m%Y,%m%d%Y.
%d%m and %m%d may lead confusion, reorder formats or simply remove formats which does not need.
Datetime​
There are 6 default formats for datetime:
%Y%m%d%H%M%S,%d%m%Y%H%M%S,%m%d%Y%H%M%S,%Y%m%d%H%M,%d%m%Y%H%M,%m%d%Y%H%M.
Full Datetime​
There are 3 default formats for full datetime:
%Y%m%d%H%M%S%f,%d%m%Y%H%M%S%f,%m%d%Y%H%M%S%f.
%f is micro-second with 6 digits in python.
Timezone Support​
The only support for timezone is %z, such as +0000.
Note in most scenarios, timezone is not used and will not be saved. Basically speaking, compatibility of timezone is for receiving data only.
Parse Logic​
- Remove 0-9+ characters from given string,
- Find suitable format according to left string length,
- Plus 2 when format contains
%Y, - Plus 3 when format contains
%z, - Format must contain
%fand must not contain%zwhen string length is more than 14, - Format must contain
%fand string length must be more than 18 when format contains%z.
- Plus 2 when format contains
Example 1:
Given string is 2022/01/01 23:59:59, the suitable formats are %Y%m%d%H%M%S, %d%m%Y%H%M%S and %m%d%Y%H%M%S.
Example 2:
Given string is 2022/01/01 23:59:59.123456+0500, the suitable format is %Y%m%d%H%M%S%f%z, which is not default built-in.