Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. from datetime import timedelta, datetime
  2. from dateutil import rrule
  3. from django.utils.timezone import now
  4. import pytz
  5.  
  6.  
  7. def get_time_start(date_time):
  8. return datetime(date_time.year, date_time.month, date_time.day, 0, 0, 0)
  9.  
  10.  
  11. def get_time_end(date_time):
  12. return datetime(date_time.year, date_time.month, date_time.day, 23, 59, 59)
  13.  
  14.  
  15. def get_today_start():
  16. return get_time_start(now())
  17.  
  18.  
  19. def get_today_end():
  20. return get_time_end(now())
  21.  
  22.  
  23. def parse_date(date, format_type="%Y%m%d"):
  24. try:
  25. return datetime.strptime(date, format_type)
  26. except:
  27. return None
  28.  
  29.  
  30. def parse_dt(date, format_type="%Y-%m-%d %H:%M:%S"):
  31. try:
  32. return datetime.strptime(date, format_type)
  33. except:
  34. return None
  35.  
  36.  
  37. def to_date_str(date, format_type="%Y%m%d"):
  38. return date.strftime(format_type)
  39.  
  40.  
  41. def to_datetime_str(date, format_type="%Y-%m-%d %H:%M:%S"):
  42. return date.strftime(format_type)
  43.  
  44.  
  45. def get_ch_now():
  46. return datetime.now(pytz.timezone("Asia/Shanghai"))
  47.  
  48.  
  49. def add_day(date, days):
  50. return date + timedelta(days=days)
  51.  
  52.  
  53. def add_seconds(date, seconds):
  54. return date + timedelta(seconds=seconds)
  55.  
  56.  
  57. def interval_day(start_date, end_date):
  58. return (end_date - start_date).days
  59.  
  60.  
  61. def work_days(start, end, holidays=0, days_off=None):
  62. if days_off is None:
  63. days_off = 5, 6 # 默认:周六和周日
  64. workdays = [x for x in range(7) if x not in days_off]
  65. days = rrule.rrule(rrule.DAILY, dtstart=start, until=end, byweekday=workdays)
  66. return days.count() - holidays
  67.  
  68.  
  69. def get_epoch(date_time):
  70. return int(date_time.strftime("%s")) * 1000
  71.  
  72.  
  73. def get_epoch_now():
  74. return get_epoch(datetime.now())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement