如何实现用户输入日期转Unix时间戳?解决字符串转整数报错
Python实现用户输入日期转Unix时间戳
你遇到的问题根源在于手动拆分用户输入的日期字符串容易出现格式不匹配、类型转换失败的情况,直接用datetime模块的strptime方法统一解析输入,就能可靠避免这类问题。
以下是修复后的完整代码:
import datetime import time def unixconvert(): # 提示用户按照指定格式输入日期时间 input_str = input("请输入日期时间(格式:YYYY-MM-DD HH:MM):") try: # 将输入字符串解析为datetime对象 date_time = datetime.datetime.strptime(input_str, "%Y-%m-%d %H:%M") print(f"date_time => {date_time}") # 转换为Unix时间戳 unix_timestamp = time.mktime(date_time.timetuple()) print(f"unix_timestamp => {unix_timestamp}") # 返回时间戳供后续API调用使用 return unix_timestamp except ValueError: # 处理输入格式错误的情况 print("输入格式不正确,请严格按照示例格式输入,例如:2021-07-26 21:20") return None # 调用函数 unixconvert()
关键说明:
- 无需手动拆分:用
strptime直接解析符合格式的字符串,不用手动拆分年、月、日再转整数,从根源解决类型转换错误。 - 异常容错:添加
try-except捕获ValueError,当用户输入格式不符时给出明确提示,防止程序崩溃。 - 格式灵活调整:如果需要支持其他输入格式(比如
YYYY/MM/DD HH:MM),只需修改strptime的第二个参数为对应格式字符串(如"%Y/%m/%d %H:%M")即可。 - 代码规范:把
datetime和time的导入放在函数外部,避免重复导入,符合Python代码编写规范。
内容的提问来源于stack exchange,提问作者Christopher
相关产品推荐
相关产品推荐

