【发布时间】:2021-08-02 05:04:57
【问题描述】:
我正在尝试将 sun 和 f 变量都转换为日本的当地时间。 我的代码仍然以 UTC 格式给出输出。
if night_time:
sun = [float(str(time_now.jd)), float(str(next_sun_rise))]
else:
sun = [float(str(next_sun_set)), float(str(next_sun_rise))]
if AlwaysBelowTheHorizon:
pass
elif Circumpolar:
sun = Time(sun, format='jd')
if night_time:
post_message_to_slack("Bingo! We can observe it now until sunrise at {}".format(sun.iso[1]))
else:
post_message_to_slack("Sun will set at {}".format(sun.iso[0]))
else:
if grb_above:
grb = [float(str(time_now.jd)), float(str(grb_set))]
else:
grb = [float(str(grb_rise)), float(str(grb_set))]
intervals = [sun, grb]
N = len(intervals)
f = findIntersection(intervals, N)
f = f.datetime(timezone('UTC'))
f = f.astimezone(timezone('Asia/Tokyo'))
post_message_to_slack("We can observe it from {} to {}".format(f[0], f[1]))
【问题讨论】:
-
嗨,欢迎来到 StackOverflow 并祝贺您的第一个问题!请注意,在发布 Python 代码时,确保其格式正确非常重要,因为 Python 中的正确缩进很重要。您应该确保在所有缩进完整的情况下逐字复制/粘贴它。我已尝试将您的代码示例重新格式化为我认为的预期,但您可能需要仔细检查。
-
另一方面,您的代码缺少重要的上下文,例如您如何初始化变量
time_now和grb_rise等,以及findIntersection函数的定义。由于您的问题是关于将 astropyTime对象转换为特定时区的时间,因此将来尝试将问题 just 集中在该方面(执行此任务的最小步骤)而不是不相关的东西,比如向 slack 发布消息。见How to create a Minimal, Reproducible example