Introduction
Sometimes you might come across unusual Date/Time formats that the fuzzy date/time parser does not recognize. This article shows how to handle one such example — you can easily adapt the example for your own use.
If you have any questions please contact us at support@interfaceware.com.
Task [top]
How to handle unusual Date/Time formats that the date/time parser does not recognize.
Implementation [top]
Just recently I came across unusual (for HL7) Date/Time timestamp.
Example: 08/03 2011 11:54
i.e., dd/mm YYYY HH:MM
Here is simple way to handle it:
We use two extensions to string library, string:zfill()
and
string:tokenize()
, both added to the shared dateutil Module.
Last but not least – the code snippets 🙂
main:
require 'dateutil' local function WeirdDateTime(s) local t t = s:tokenize() return t[3].. t[2]:zfill(2).. t[1]:zfill(2).. t[4]:zfill(2).. t[5]:zfill(2) end function main() s = '8/3 2010 11.34' dt = WeirdDateTime(s) end
dateutil:
function string.tokenize(self) t = {} for w in string.gmatch(self, "(%w+)" ) do t[#t+1] = w end return t end function string.zfill(self,n) local R = n local L = #self if L < R then self = '0'..self self:zfill(R) else z = self end return z en