import datetime
from pandas import DataFrame, concat
# 任何其他时区时间转化成北京时间(UTC+08:00)或其他区时间
def india_to_local(india_time_str,india_format = '%Y-%m-%d %H:%M:%S+08:00'):
india_dt = datetime.datetime.strptime(india_time_str, india_format)
local_dt = india_dt + datetime.timedelta(hours=2, minutes=30)
local_format = "%Y/%m/%d" # "%Y-%m-%d %H:%M:%S"
time_str = local_dt.strftime(local_format)
return time_str
# india_time_str = '2022-01-26 00:00:00+08:00'
# time_str = india_to_local(india_time_str)
# print(time_str)
# //// 构造数据 start ///////
Columns=['open', 'close', 'low', 'high', 'eob']
data = DataFrame(columns=Columns)
# 27.2 27.22 26.92 27.31 2022-01-26 00:00:00+08:00
# 27.1 26.90 26.89 27.16 2022-01-27 00:00:00+08:00
# 27.0 26.26 26.23 27.04 2022-01-28 00:00:00+08:00
data.loc[0] = [27.2, 27.22, 26.92, 27.31, '2022-01-26 00:00:00+08:00']
data.loc[1] = [27.1, 26.90, 26.89, 27.16, '2022-01-27 00:00:00+08:00']
data.loc[2] = [27.0, 26.26, 26.23, 27.04, '2022-01-28 00:00:00+08:00']
# print(data,end='\n\n')
# //// 构造数据 end ///////
# //// 转换数据 start ///////
# 修改格式
data['eob'] = data['eob'].map(lambda x: india_to_local(x))
# 修改列名
data.rename(columns={"eob":"datatime"},inplace=True)
# print(data,end='\n\n')
Columns1 = ['datatime','open','close','low','high']
# # 方法一:拼接到另一个表
# finalData = DataFrame(columns=Columns1)
# finalData = concat([finalData, data],
# sort=False, join_axes=[finalData.columns])
# print(finalData)
# # 方法二:交换列名顺序
finalData = data[Columns1]
# 设置数据类型为字符串
finalData = finalData.astype(str)
print(finalData)
finalData.to_excel('C:/Users/Lenovo/Desktop/1.xlsx', index=False)