当前位置: 首页 > 面试题库 >

使用python strftime显示日期,例如“ May 5th”。

裴兴学
2023-03-14
问题内容

在Python中,time.strftime可以很容易地产生类似“ Thursday May 05”的输出,但是我想生成一个类似“ Thursday May
5th”的字符串(注意日期上的附加“ th”)。做这个的最好方式是什么?


问题答案:

strftime 不允许您使用后缀格式化日期。

这是获取正确后缀的方法:

if 4 <= day <= 20 or 24 <= day <= 30:
    suffix = "th"
else:
    suffix = ["st", "nd", "rd"][day % 10 - 1]

在这里找到

更新:

将基于Jochen的评论的更紧凑的解决方案与gsteff的答案相结合:

from datetime import datetime as dt

def suffix(d):
    return 'th' if 11<=d<=13 else {1:'st',2:'nd',3:'rd'}.get(d%10, 'th')

def custom_strftime(format, t):
    return t.strftime(format).replace('{S}', str(t.day) + suffix(t.day))

print custom_strftime('%B {S}, %Y', dt.now())

给出:

May 5th, 2011



 类似资料:
  • 我创建了新的SimpleDataFormat对象,它将给定字符串解析为日期对象。日期格式如下: 我将此日期设置为日历实例,如下所示: 现在我从这个日历中获取一周中的哪一天。它给出了错误的值。 它给出的输出是7,即周六,但预期值是5,即周四。有什么问题吗?

  • 我希望使用calendar对象显示日期。 ...和... 我面临的问题是,为什么以下输出中的出生日期会给我一条未知的、荒谬的长线: ID员工编号:123 员工姓名:明武 出生日期:java.util.GregorianCalendar[time=?, areFieldsSet=false, areAllFieldsSet=true, lenient=true, zone=sun.util.cale

  • 我有一个带有REST API的Spring Boot应用程序,在一个请求对象中,我声明了一个字段,该字段应该以DDMMYYYY格式保存日期: 在Swagger UI中,请求正文中该字段的示例值始终显示如下(当前日期的格式为YYYY-MM-DD)。 我在pom.xml中有这样的内容: 如何使Swagger UI以DDMMYYYY格式显示示例日期?正如你在我上面的代码中看到的,我输入了@Paramet

  • 日期显示方式 设定画面上[年月日]的排列顺序。

  • 问题内容: 我一直在尝试在Elasticsearch中使用日期直方图聚合,并且它以纪元或yy-mm-dd-mm- ss格式返回日期。但是我想要的是获取每周的文档计数,例如星期一,星期二等。我有什么方法可以做到这一点? 问题答案: 您需要采用其他方法。使用脚本,您可以将日期时间转换为星期几。在此值上,如果您应用术语汇总,它应该可以正常工作。 将日期时间值转换为工作日的脚本 查询以获取值 您还可以在此

  • 我正在使用Java-Eclipse和oracle SGBD public DefaultTableModel getJoueurData(){