Python получает начало недели в соответствии с часовым поясом / языковым стандартом

Я хочу знать, какое начало недели, но это должно быть в соответствии с конкретным часовым поясом или локалью.

Я могу получить дату и время начала дня, как это

now = datetime.now()
weekday = now.weekday()   # 0 if it is Monday
start_of_week = now.replace(day=now.day-weekday)

Но если я нахожусь в стране, где начало недели - воскресенье (например, часовой пояс "Asia/Tel_Aviv"), это не сработает.

Есть ли способ получить начало недели в зависимости от часового пояса или локали с помощью pytz или любой другой библиотеки?

1 ответ

Решение

Не то, чтобы я в курсе.

Эта информация отсутствует в базе данных pytz. Он будет доступен в базе данных локалей, но в вашей системе, вероятно, не установлены все возможные локали (в системах linux -a показывает, что там). Теоретически вы можете установить их все и создать конвертер между часовым поясом и локалью, и проверить его оттуда.

Слишком сложный на мой вкус.

Я бы просто сделал это вручную. В мире только так много стран, и большинство из них используют понедельник в качестве первого дня недели. Просто создайте словарь, содержащий около 200 записей, вы можете импортировать данные, например, отсюда: http://chartsbin.com/view/41671

Ханну

Другие вопросы по тегам