71 lines
1.6 KiB
Python
71 lines
1.6 KiB
Python
""" Simple formatting of datetime.datetime objects """
|
|
|
|
import datetime
|
|
|
|
|
|
class DateTimeFormatter:
|
|
""" provides property access to formatted datetime.datetime strftime values """
|
|
|
|
def __init__(self, dt: datetime.datetime):
|
|
self.dt = dt
|
|
|
|
@property
|
|
def date(self):
|
|
""" ISO date in form 2020-03-22 """
|
|
return self.dt.date().isoformat()
|
|
|
|
@property
|
|
def year(self):
|
|
""" 4 digit year """
|
|
return f"{self.dt.year}"
|
|
|
|
@property
|
|
def yy(self):
|
|
""" 2 digit year """
|
|
return f"{self.dt.strftime('%y')}"
|
|
|
|
@property
|
|
def mm(self):
|
|
""" 2 digit month """
|
|
return f"{self.dt.strftime('%m')}"
|
|
|
|
@property
|
|
def month(self):
|
|
""" Month as locale's full name """
|
|
return f"{self.dt.strftime('%B')}"
|
|
|
|
@property
|
|
def mon(self):
|
|
""" Month as locale's abbreviated name """
|
|
return f"{self.dt.strftime('%b')}"
|
|
|
|
@property
|
|
def dd(self):
|
|
""" 2-digit day of the month """
|
|
return f"{self.dt.strftime('%d')}"
|
|
|
|
@property
|
|
def dow(self):
|
|
""" Day of week as locale's name """
|
|
return f"{self.dt.strftime('%A')}"
|
|
|
|
@property
|
|
def doy(self):
|
|
""" Julian day of year starting from 001 """
|
|
return f"{self.dt.strftime('%j')}"
|
|
|
|
@property
|
|
def hour(self):
|
|
""" 2-digit hour """
|
|
return f"{self.dt.strftime('%H')}"
|
|
|
|
@property
|
|
def min(self):
|
|
""" 2-digit minute """
|
|
return f"{self.dt.strftime('%M')}"
|
|
|
|
@property
|
|
def sec(self):
|
|
""" 2-digit second """
|
|
return f"{self.dt.strftime('%S')}"
|