📜  QA – 安置测验|钟表 |问题 16(1)

📅  最后修改于: 2023-12-03 15:19:38.165000             🧑  作者: Mango

QA – 安置测验|钟表 |问题 16

介绍

这是一个关于钟表的测试题,目的是测试程序员对于时间和时区转换的能力。题目16要求程序员编写一个函数,将纽约时间(美国东部时间)转换为北京时间(中国标准时间)。

题目描述

编写一个函数,将给定的一个时间字符串表示的纽约时间转换为北京时间,并返回转换后的时间字符串。

函数原型:def ny_to_bj(ny_time: str) -> str:

输入参数:

  • ny_time(字符串类型):纽约时间,格式为YYYY/MM/DD HH:MM:SS

返回值:

  • str类型:表示转换后的北京时间,格式为YYYY/MM/DD HH:MM:SS

提示:

  • 纽约时间比北京时间晚12个小时。
示例
assert ny_to_bj('2022/07/16 08:30:00') == '2022/07/16 20:30:00'
assert ny_to_bj('2022/12/31 23:59:59') == '2023/01/01 11:59:59'
答案
from datetime import datetime, timedelta

def ny_to_bj(ny_time: str) -> str:
    ny_dt = datetime.strptime(ny_time, '%Y/%m/%d %H:%M:%S')
    bj_dt = ny_dt + timedelta(hours=12)
    bj_time = bj_dt.strftime('%Y/%m/%d %H:%M:%S')
    return bj_time

该函数使用Python的datetime模块,将输入的纽约时间字符串转换为datetime对象,然后使用timedelta对象将时间加上12小时,最后将转换后的北京时间转换为字符串格式并返回。使用assert断言测试两个示例,确认函数的正确性。