The current implementation does not need to compute position of sections and scan for separators, but:
- generate input mask based on data/time/date+time formats
- separate input format from output format
- allow to enter incomplete numbers for values, e.g. for hours even if the format expects two digits, one digit is enough
- capture 'empty format' which helps to detect that only separators are present in the input string
- add fallback from names to numeric values of months and days when generating input mask