python3使用tk画三个编辑框分别叫时间utc时间戳nt时间戳一个按钮叫转换
以下是一个简单的Python3程序,使用tkinter库创建三个编辑框和一个按钮,并实现将时间、UTC时间戳和NT时间戳相互转换的功能:
import tkinter as tk
import time
import datetime
class TimeConverter:
def __init__(self, master):
self.master = master
self.master.title("时间转换器")
# 创建三个编辑框
self.time_entry = tk.Entry(self.master)
self.utc_entry = tk.Entry(self.master)
self.nt_entry = tk.Entry(self.master)
# 创建一个转换按钮
self.convert_button = tk.Button(self.master, text='转换', command=self.convert_time)
# 将编辑框和按钮放置到主窗口中
self.time_entry.grid(row=0, column=0)
self.utc_entry.grid(row=1, column=0)
self.nt_entry.grid(row=2, column=0)
self.convert_button.grid(row=3, column=0)
def convert_time(self):
try:
# 获取时间编辑框中的值
time_str = self.time_entry.get()
# 将时间字符串转换为时间对象
time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
# 将时间对象转换为UTC时间戳和NT时间戳,并更新编辑框的值
self.utc_entry.delete(0, tk.END)
self.utc_entry.insert(0, str(time_obj.timestamp()))
self.nt_entry.delete(0, tk.END)
self.nt_entry.insert(0, str(self.nt_timestamp(time_obj)))
except ValueError:
# 如果时间字符串无效,则清空所有编辑框的值
self.time_entry.delete(0, tk.END)
self.utc_entry.delete(0, tk.END)
self.nt_entry.delete(0, tk.END)
def nt_timestamp(self, time_obj):
nt_epoch = datetime.datetime(1601, 1, 1)
time_delta = time_obj - nt_epoch
nt_timestamp = int(time_delta.total_seconds() * 10000000)
return nt_timestamp
if __name__ == '__main__':
root = tk.Tk()
converter = TimeConverter(root)
root.mainloop()
运行程序后,会出现一个窗口,包含三个编辑框和一个按钮。用户可以在时间编辑框中输入时间,然后单击“转换”按钮,程序会将时间转换为UTC时间戳和NT时间戳,并将结果显示在相应的编辑框中。
注意,为了将时间字符串转换为时间对象,程序使用了Python的datetime模块。此外,为了计算NT时间戳,程序还定义了一个nt_timestamp方法,它将给定时间对象与NT纪元(1601年1月1日)的时间差转换为秒数,并将其乘以10,000,000,以获得NT时间戳的值
原文地址: http://www.cveoy.top/t/topic/fmIT 著作权归作者所有。请勿转载和采集!