2

次の行からpytzライブラリからオフセットを取得しています。

 offset = datetime.datetime.now(pytz.timezone(timezone)).strftime('%z')

最初にin変数を渡し、次にUS/Easternin変数を渡します。これにより次の値が出力されます。timezoneAsia/Kolkatatimezone

 local_utc = -0400
 user_utc = +0530

これらの値を取得した後、次のコードを使用して文字列からintに変換しました。

local_utc = int(local_utc)
user_urc = int(user_utc)

これとは別に、私はタイムタプルも持っています:

 hour, minute,days = (timezone_tuple.tm_hour, timezone_tuple.tm_min,
                        timezone_tuple.tm_mday)

local_utc and user_utc-0400などの上記のタプル04に時間と分などの違いを追加したいと思い00ます。例:違いは:0930。そして、09に追加されtimezone_tuple.tm_hour30に追加されますtimezone_tuple.tm_min

何の状況も見つかりませんでした。どうすればそれが可能でしょうか?spilitメソッドを使用する方法はありますか

4

1 に答える 1

1

あなたの投稿は、整数として検索する方法を示しましlocal_utcuser_utc。差local_utc-user_utcをとって相対オフセットを決定することができます。

ただしdatetime、、timeおよびpytzは、オフセットを解析してそのような計算を「手動で」実行することなく、時間を操作するために必要なすべてのツールを提供する必要があります。

例えば、

import pytz
import datetime as dt
import time

eastern = pytz.timezone('US/Eastern')
kolkata = pytz.timezone('Asia/Kolkata')

naive_timetuple = time.localtime(0)
print(naive_timetuple)
# time.struct_time(tm_year=1969, tm_mon=12, tm_mday=31, tm_hour=19, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=365, tm_isdst=0)

上記で、私は素朴なタイムタプルを定義しました。以下では、米国/東部時間に「ローカライズ」します。つまり、タイムゾーン対応の日時にします。

naive_datetime = dt.datetime(*naive_timetuple[:6])
print(naive_datetime)
# 1969-12-31 19:00:00

localized_datetime = eastern.localize(naive_datetime)
print(localized_datetime)
# 1969-12-31 19:00:00-05:00

次に、タイムゾーン対応の日時を他のタイムゾーンに変換するには、次のastimezone方法を使用します。

kolkata_datetime = localized_datetime.astimezone(kolkata)
print(kolkata_datetime)
# 1970-01-01 05:30:00+05:30

また、日時をタイムタプルに戻す必要がある場合は、タイムタプルメソッドを使用します。

kolkata_timetuple = kolkata_datetime.timetuple()
print(kolkata_timetuple)
# time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=5, tm_min=30, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
于 2012-05-29T17:56:05.937 に答える