当使用Python strftime时,是否有一种方法可以删除日期的第一个0,如果它在10号之前,即。01 = 1?找不到一个%的东西吗?
谢谢!
当使用Python strftime时,是否有一种方法可以删除日期的第一个0,如果它在10号之前,即。01 = 1?找不到一个%的东西吗?
谢谢!
当前回答
实际上我也遇到了同样的问题,我意识到,如果在%和字母之间添加一个连字符,就可以去掉前导零。
例如%Y/%-m/%-d。
这只适用于Unix (Linux, OS X),而不是Windows(包括Cygwin)。在Windows上,您可以使用#,例如%Y/%#m/%#d。
其他回答
下面是GNU C库中strftime()支持的修饰符的文档。(就像人们之前说的,它可能不方便携带。)你可能感兴趣的是:
%e而不是%d将用空格替换月中的第一天的前导零
它适用于我的Python (Linux)。我不知道它对你是否有效。
实际上我也遇到了同样的问题,我意识到,如果在%和字母之间添加一个连字符,就可以去掉前导零。
例如%Y/%-m/%-d。
这只适用于Unix (Linux, OS X),而不是Windows(包括Cygwin)。在Windows上,您可以使用#,例如%Y/%#m/%#d。
基于Alex的方法,这将适用于字符串开头和空格后的情况:
re.sub('^0|(?<= )0', '', "01 January 2000 08:00am")
与.format或%-d相比,我更喜欢这个,因为它是跨平台的,并且允许我继续使用strftime(以获得“November”和“Monday”之类的东西)。
简单地像这样使用replace:
(datetime.date.now ()) .strftime(“% Y / % m / % d”)。替换(" / 0”、“/”)
它将输出:
'2017/7/21'
如果我们想只获取date,而前导为0,我们可以
d = date.today()
day = int(d.strftime("%d"))