繁体   English   中英

如何全局更改 Python 中的默认日期格式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM