10

私はスクリプトに取り組んでいますが、Pythonで日時オブジェクトを操作する必要があります。ある時点で、これらのオブジェクトの1つがあり、曜日(数値)を3文字の形式(火、水など)で取得する必要があります。これがコードの簡単なサンプルです。dateMatch.group()で私が行っているのは、正規表現のマッチングによって取得された文字列の断片を取得することだけです。

from datetime import datetime

day = dateMatch.group(2)
month = dateMatch.group(3)
year = dateMatch.group(4)
hour = dateMatch.group(5)
minute = dateMatch.group(6)
second = dateMatch.group(7)

tweetDate = datetime(int(year), months[month], int(day), int(hour), int(minute), int(second))

その日時オブジェクトから、数値の日値(つまり、18)を取得し、それを(つまり、火)に変換する必要があります。

ありがとう!

4

4 に答える 4

16

http://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior

date、datetime、および time オブジェクトはすべてstrftime(format)メソッドをサポートしており、明示的な書式文字列の制御下で時刻を表す文字列を作成します。

...

%a — ロケールの省略された曜日名。

>>> datetime.datetime.now().strftime('%a')
   'Wed'
于 2013-03-19T20:22:31.010 に答える
4

オブジェクトstrftimeメソッドは、現在のロケールを使用して変換を決定します。datetime

>>> from datetime import datetime
>>> t = datetime.now()
>>> t.strftime('%a')
'Tue'
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'fr_FR')
'fr_FR'
>>> t.strftime('%a')
'Mar'

これが受け入れられない場合 (たとえば、インターネット プロトコルを介して送信するために日付をフォーマットしている場合Tue、ユーザーのロケールに関係なく、実際には文字列が必要になる場合があります)、次のようなものが必要です。

weekdays = 'Mon Tue Wed Thu Fri Sat Sun'.split()
return weekdays[datetime.now().weekday()]

または、"C" ロケールを明示的に要求することもできます。

locale.setlocale(locale.LC_TIME, 'C')
return datetime.now().strftime('%a')

ただし、このようにロケールを設定すると、プログラム内のすべてのスレッドのすべての書式設定操作に影響するため、あまり良い考えとは言えません。

于 2013-03-19T20:34:23.670 に答える
0

私が使用したドキュメント:http: //docs.python.org/2/library/datetime.html

まず、今日の日付が必要です。

today = date.today() # Which returns a date object

平日は、次を使用して日付オブジェクトから見つけることができます。

weekday = today.timetuple()[6] # Getting the 6th item in the tuple returned by timetuple

これは月曜日からの日数を返します(0は月曜日になります)。この整数を使用すると、次のことができます。

print ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"][weekday] # Prints out the weekday in three chars

組み合わせると:

from datetime import date

today = date.today() # Gets the date in format "yyyy-mm-ddd"
print today
weekday = today.timetuple()[6] # Gets the days from monday
print ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"][weekday] # Prints out the weekday in three chars
于 2013-03-19T20:43:47.773 に答える
0

["Mon","Tue","Wed","Thu","Fri","Sat","Sun"] をハードコーディングする代わりに、以下を試してください:

import calendar
weekdays = [x for x in calendar.day_abbr]  # in the current locale
于 2016-03-23T07:17:03.853 に答える