如何在python中确定一周的第一天

2022-01-11 00:00:00 python date calendar

问题描述

根据语言环境,我需要找到一周的第一天(周日/周一)在 JAVA 中我会这样做:

Based on the locale I need to find what is the first day of the week (Sunday/Monday) In JAVA I would do:

Calendar FR_cal = Calendar.getInstance(Locale.FRANCE);
Calendar CA_cal = Calendar.getInstance(Locale.CANADA);

DateFormatSymbols dfs = new DateFormatSymbols();
String weekdays[] = dfs.getWeekdays();

System.out.println(weekdays[JO_cal.getFirstDayOfWeek()]);
System.out.println(weekdays[FR_cal.getFirstDayOfWeek()]);

我如何在 python 中做到这一点?

How can I do it in python ?


解决方案

我只能想办法用 Babel 库.它可以通过 easy_install 获得.

I could only figure out how to do this with the Babel library. It's available through easy_install.

>>> import babel
>>> locale = babel.Locale('en', 'US')
>>> locale.first_week_day
6
>>> locale.days['format']['wide'][locale.first_week_day]
u'Sunday'

<小时>

事实证明,以下内容不起作用,因为 Nate 好心指出.如果有人知道原因,请发布并回答以说明如何正确处理.这应该可以通过标准库来实现.


turns out that the following doesn't work as Nate was kind enough to point out. If anybody knows why, please post and answer showing how to do it right. This should be doable with the standard library.

如果你只想要一天的数字,那么你可以使用calendar.LocalTextCalendar.

If you just want the number of the day, then you can use calendar.LocalTextCalendar.

>>> import calendar
>>> c = calendar.LocaleTextCalendar(locale='de_DE') # locale=('en_US', 'UTF8') fails too.
>>> c.firstweekday
0

还有 iterweekdays 方法.

>>> list(c.iterweekdays())
[0, 1, 2, 3, 4, 5, 6]

相关文章