2017-10-31 16 views
1

文字列に含まれる平日の次の可能な日付を検索したいと考えています。この平日は外国語(sv_SE)になるという複雑さです。 Python:平日(外国語)平日の日付

startdate=$(dateround --from-locale=sv_SE -z CET today $startday) 

は非常にPythonでこれを解決する方法についてのご指導に感謝:

はbashで、私はこの使用して `dateround'を解決することができます。

ありがとうございました!

+0

あなたはその言語の日付の例を提供できますか? – yash

+0

例えば "Onsdag"ですが、以下の4d11sの答えは私の問題を解決します –

答えて

1

Dateparserは相当数のサポートを受けていますlanguages平日をdatetimeオブジェクトに解析し、利用可能な次の日付を決定することができます。

- 編集 -

from dateparser import parse 

parse('Onsdag').isoweekday() # 3 

今、あなたはISO曜日を持っていることを、あなたは、次の可能な日付を見つけることができます。詳細は、thisを参照してください。

0

localeのエイリアスはプラットフォーム固有で、大文字と小文字が区別されます。私は窓を持っています。したがって、ロケールはsv_SEになります。

日付/時刻変換にはbabelを使用でき、ネイティブlocaleモジュールよりはるかに包括的です。

Babelは、Webベースのアプリケーションに重点を置いて、Pythonアプリケーションの国際化とローカライズを支援するユーティリティの統合されたコレクションです。インストールすることができます


pip install Babel

インストールが完了したら、我々は他に1つの言語、日付、時刻をフォーマットするformat_dateformat_datetimeformat_timeユーティリティを使用することができます。

これらのユーティリティを使用すると、日時データを英語とスウェーデン語に変換できます。

>>>import datetime 
>>>from babel.dates import format_date, format_datetime, format_time 

#Here we get current date time in an datetime object 
>>> now = datetime.datetime.now() 
>>> now 
datetime.datetime(2017, 10, 31, 9, 46, 32, 650000) 

#We format datetime object to english using babel 
>>> format_date(now, locale='en') 
u'Oct 31, 2017' 

#We format datetime object to sweedish using babel 
>>> format_date(now, locale='sv_SE') 
u'31 okt. 2017' 
>>> 
+0

babelは素晴らしいですが、それは私が説明した問題とは反対の方向に働きます。私は4d11が彼の答えで解決する日付オブジェクトを最初に構築する必要がありました。 –