簡體   English   中英

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

[英]How to determine the first day of week in python

根據語言環境,我需要確定一周的第一天(星期日/星期一)是什么?在JAVA中,我將執行以下操作:

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中做到這一點?

我只能弄清楚如何用Babel庫做到這一點。 可通過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足夠友善地指出。 如果有人知道原因,請發布並回答正確的操作方法。 這應該在標准庫中可行。

如果只需要一天的時間,則可以使用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]

直到(包括)Python 3.1.2為止的python標准庫似乎都缺少此功能。


一些線索:

由於有關此信息通常與系統l10n數據一起存儲(在GNU世界中,可能是/usr/share/i18n/locales/ ),所以我的第一個反應是使用諸如locale.nl_langinfo() ,但不幸的是在語言環境模塊中沒有類似locale.FIRST_WEEKDAY東西:-(

除了aaronasterling提到Babel lib之外,我還找到了該示例的示例,該示例針對GNOME小程序中使用的命名問題。 同樣值得注意的是隨附的博客文章

看一下日歷模塊。 可能會派上用場!

現在,尤其是許多歐洲國家/地區的日歷現在都按照ISO的決定,從星期一開始。 航空公司的時間表還將從星期一開始的天數定為1,將星期二定為2,將星期三定為3,以此類推。

上面指出,星期一應該始終是一周的第一天。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM