fork(1) download
  1. from __future__ import print_function, unicode_literals # если будешь запускать из-под python2
  2. import re
  3. import datetime
  4.  
  5. inp = '''
  6. 6 Jan @ 4:03pm
  7. 8 Jan @ 2:17pm
  8. 9 Dec @ 4:00am
  9. 9 Dec @ 5:14pm
  10. 9 Dec @ 5:28am
  11. 10 Jan @ 2:55pm
  12. 10 Jan @ 4:21am
  13. 10 Jan @ 7:14pm
  14. 12 Dec @ 7:48pm
  15. 12 Dec @ 7:50pm
  16. 12 Jan @ 3:32pm
  17. 13 Dec @ 3:43pm
  18. 13 Dec @ 5:02am
  19. 13 Dec @ 5:24am
  20. 14 Jan @ 5:17pm
  21. 15 Jan @ 5:29am
  22. 21 Dec @ 3:56pm
  23. 21 Dec @ 9:40am
  24. '''
  25.  
  26. date_str = '%d %b @ %I:%M%p'
  27. date_format = "{day} {month} @ {hour}:{min}{ampm}"
  28. re_format = r'(\d{1,2}) (\w{3}) @ (\d{1,2}):(\d{1,2})([a-p][m])'
  29.  
  30. regex = re.compile(re_format, re.I)
  31. dates = regex.findall(inp)
  32.  
  33. l_dates = []
  34.  
  35. for date in dates:
  36. dt = datetime.datetime.strptime(date_format.format(
  37. day=date[0], month=date[1], hour=date[2], min=date[3], ampm=date[4]),
  38. date_str)
  39. l_dates.append(dt)
  40.  
  41. l_dates.sort()
  42.  
  43. for date in l_dates:
  44. print(date.strftime(date_str))
Success #stdin #stdout 0.05s 10816KB
stdin
Standard input is empty
stdout
06 Jan @ 04:03PM
08 Jan @ 02:17PM
10 Jan @ 04:21AM
10 Jan @ 02:55PM
10 Jan @ 07:14PM
12 Jan @ 03:32PM
14 Jan @ 05:17PM
15 Jan @ 05:29AM
09 Dec @ 04:00AM
09 Dec @ 05:28AM
09 Dec @ 05:14PM
12 Dec @ 07:48PM
12 Dec @ 07:50PM
13 Dec @ 05:02AM
13 Dec @ 05:24AM
13 Dec @ 03:43PM
21 Dec @ 09:40AM
21 Dec @ 03:56PM