http://www.perlmonks.org?node_id=1055237


in reply to matching datetimestamps and concatenating data where timestamps match from multiple large datafiles

One way to do this is to adopt a "standard" format that is ASCII sortable.

Example: "2012-10-06 1649".
This is Oct 6, 2012 at 16:49 GMT (year-month-date time).

The leading zero's are important!
"2012-10-6 1649" won't sort in the same ASCII order.

The above format sorts in ASCII order. No problem. That also means that you can compare Date X vs Date Y!.
Add seconds as you wish "1649:05", etc. As long as you have leading zero's, ASCII sort order will work. "1649 05" is fine also as long as the format is consistent with space between the minutes and seconds and leading zero's.

In general, log files should use GMT or what is called UTC time. This is time zone independent.

If you use a DB, same idea: normalize to GMT/UTC time - that is what goes into the DB.

Basically, normalize the date/times to a standard ASCII sortable format using GMT/UTC time. Put that into a DB or not. You can sort/search on these times in ASCII format if you want to. Perl sorts ASCII fields like a rocket. If you have a time zone independent date/time format, the DB will also sort/search it like a rocket.