Advertisement
Guest User

Untitled

a guest
Aug 20th, 2014
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. if datetime.strptime(item, '%Y') or datetime.strptime(item, '%b %d %y') or datetime.strptime(item, '%b %d %Y') or datetime.strptime(item, '%B %d %y') or datetime.strptime(item, '%B %d %Y'):
  2.  
  3. if item is date:
  4. print date
  5. else:
  6. print "Not a date"
  7.  
  8. from dateutil.parser import parse
  9.  
  10. def is_date(string):
  11. try:
  12. parse(string)
  13. return "is a date"
  14. except ValueError:
  15. return "not a date"
  16.  
  17. is_date("1990-12-1") # "is a date"
  18. is_date("xyznotadate") # "not a date"
  19.  
  20. txt='''
  21. Jan 19, 1990
  22. January 19, 1990
  23. Jan 19,1990
  24. 01/19/1990
  25. 01/19/90
  26. 1990
  27. Jan 1990
  28. January1990'''
  29.  
  30. import datetime as dt
  31.  
  32. fmts = ('%Y','%b %d, %Y','%b %d, %Y','%B %d, %Y','%B %d %Y','%m/%d/%Y','%m/%d/%y','%b %Y','%B%Y','%b %d,%Y')
  33.  
  34. parsed=[]
  35. for e in txt.splitlines():
  36. for fmt in fmts:
  37. try:
  38. t = dt.datetime.strptime(e, fmt)
  39. parsed.append((e, fmt, t))
  40. break
  41. except ValueError as err:
  42. pass
  43.  
  44. # check that all the cases are handled
  45. success={t[0] for t in parsed}
  46. for e in txt.splitlines():
  47. if e not in success:
  48. print e
  49.  
  50. for t in parsed:
  51. print '"{:20}" => "{:20}" => {}'.format(*t)
  52.  
  53. "Jan 19, 1990 " => "%b %d, %Y " => 1990-01-19 00:00:00
  54. "January 19, 1990 " => "%B %d, %Y " => 1990-01-19 00:00:00
  55. "Jan 19,1990 " => "%b %d,%Y " => 1990-01-19 00:00:00
  56. "01/19/1990 " => "%m/%d/%Y " => 1990-01-19 00:00:00
  57. "01/19/90 " => "%m/%d/%y " => 1990-01-19 00:00:00
  58. "1990 " => "%Y " => 1990-01-01 00:00:00
  59. "Jan 1990 " => "%b %Y " => 1990-01-01 00:00:00
  60. "January1990 " => "%B%Y " => 1990-01-01 00:00:00
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement