[英]How to globally change the default date format in Python
我正在编写一个 Python 脚本,当我想根据特定格式显示日期时,我目前在其中使用strftime
。 但是,我使用的格式在整个脚本中始终相同,因此感觉浪费时间并且违反 DRY 原则,必须在每次print
中显式调用strftime(myFormat)
。
我正在寻找一种方法,只为所有字符串定义一次脚本中使用的日期字符串格式。
我试过这个:
from datetime import datetime
def format_string(self):
return "%02d-%02d-%02d" % (self._day, self._month, self._year)
datetime.date.__str__ = format_string
这不起作用,因为__str__
是只读的。
假设__str__
不是只读的,在所有模块中导入日期时间时,您的解决方案将如何工作? 您必须在每个模块的开头定义__str__
。
为了解决这个问题,您可能会创建一个基本模块,例如“mydatetime.py”,在该模块中定义__str__
,然后在您将打印的所有模块中执行from mydatetime import datetime
因此,如果我们要拥有自己的基础模块,为什么不创建自己的 class
我的日期时间.py
from datetime import datetime as system_datetime, date as system_date
class date(system_date):
def __str__(self):. # similarly for __repr__
return "%02d-%02d-%02d" % (self._day, self._month, self._year)
class datetime(system_datetime):
def __str__(self):. # similarly for __repr__
return "%02d-%02d-%02d" % (self._day, self._month, self._year)
def date(self):
return date(self.year, self.month, self.day)
然后您可以将 all from datetime import datetime
替换为from mydatetime import datetime
您可以定义一个在代码库中导入的方法pretty_format_date()
,并且该方法将包含要重用的strftime(myFormat)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.