繁体   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