【问题标题】:How to convert time zone from user input? using python如何从用户输入转换时区?使用蟒蛇
【发布时间】:2023-02-19 07:00:16
【问题描述】:

我需要将用户输入的时间和时区转换为“America/New_York” ,,,,py

import datetime
import pytz
user_inp_time  =input("What is your hour? " )
user_inp_tz   = input("Your time zone is? ") #input Europe/Chisinau

user_time     = datetime.datetime.strptime(user_inp_time,"%H:%M")
user_tz       = pytz.timezone(user_inp_tz)

tz2= ('America/New_York')
ny_time= user_time.astimezone(pytz.timezone(tz2))
print("In Europe/Chisinau is :", user_time)
print("In America/New_York is :", ny_time)

我收到这个错误 引发 UnknownTimeZoneError(区域) pytz.exceptions.UnknownTimeZoneError

【问题讨论】:

  • 时区是否未知,因为正确的拼写是 Chisinau?您可以使用 pytz.all_timezones 获取所有有效输入的列表。
  • 使用正确的输入Europe/Chisinau,您的代码工作正常。

标签: python time timezone pytz


【解决方案1】:

正如评论所说,提供的时区不是有效时区。您可以使用print(pytz.all_timezones) 获取 pytz 时区列表。您应该使用代码检查时区是否有效

if user_inp_tz not in pytz.all_timezones:
    print("Invalid time zone input")
else:
    user_tz       = pytz.timezone(user_inp_tz)
    user_time     = datetime.datetime.now(user_tz)
    ny_time= user_time.astimezone(pytz.timezone('America/New_York'))
    print("In your timezone :", user_time)
    print("In America/New_York is :", ny_time)

【讨论】:

  • 感谢您的帮助,但我还需要从用户输入中获取时间,如何结合时间和时区? user_time = datetime.datetime.now(user_tz) 这里我只得到当前时间
  • @AndyVerlan 请参阅the pytz documentation 了解如何本地化日期/时间。
猜你喜欢
  • 2021-06-22
  • 1970-01-01
  • 2021-02-11
  • 1970-01-01
  • 2019-05-28
  • 2019-06-19
  • 2017-08-18
  • 2020-06-05
相关资源
最近更新 更多