UTC时间与Beijing时间转换工具

近来有很多童鞋渴望来一场激烈的CF(是Codeforces不是Cross Fire)来提升自己的实力,但是大家都知道,codeforces上公布的比赛时间都是UTC时间(协调世界时),可是没有关系,我们可以写一个小工具来方便完成时间转化。

Codeforces官网:http://codeforces.com/

 

 只要知道UTC time与Beijing time的转换关系,我们轻松完成这一转换任务(UTC time + 8 hours = Beijing time)

通过我们的转换小工具

 

Code 

//UTC-time + 8 hours = Beijing-time
#include <iostream>
#include <cstdio>

using namespace std;

int year, month, day, hour, minute;

int mon[] = {0, 31, 28, 31, 30, 31, 30, 31, 30, 30, 31, 30, 31};

bool LeapYear(int y)
{
	if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) return true;
	else return false;
}

void solve()
{
	if (LeapYear(month)) mon[2] = 29;
	else mon[2] = 28;

	if (hour == 24 && minute != 0)
	{
		day += 1;
		hour = 0;
	}
	else if (hour > 24)
	{
		day += 1;
		hour -= 24;
	}

	if (day > mon[month])
	{
		day -= mon[month];
		month += 1;
	}

	if (month > 12)
	{
		year += 1;
		month -= 12;
	}

}

int main()
{
	printf(" ---------------------------------------\n");
	printf("|请输入您从Codeforces上获取的UTC比赛时间|\n");
	printf("|     输入格式严格按照如下格式输入      |\n");
	printf("|        月/日/年(12/09/2018)           |\n");
	printf("|          小时/分钟(16:05)             |\n");
	printf(" ---------------------------------------\n");
	printf(">> ");
	scanf("%d/%d/%d", &month, &day, &year);
	printf(">> ");
	scanf("%d:%d", &hour, &minute);
	//printf("UTC-time:%d/%d/%d %02d:%02d\n", month, day, year, hour, minute);

	hour += 8;

	solve();

	printf("<< Beijing Time:%d/%d/%d %02d:%02d\n", month, day, year, hour, minute);

	return 0;
}

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要将UTC时间转换为北京时间,可以使用以下工具函数: ```python from datetime import datetime, timezone, timedelta def convert_beijing_from_utc(utc_dt: datetime, hours=8): """转换UTC时间为北京时间""" beijing_time = (utc_dt + timedelta(hours=hours)).replace(tzinfo=timezone.utc) # 需要加上UTC时区 beijing_time = beijing_time.astimezone(timezone(timedelta(hours=hours))) return beijing_time ``` 使用该函数进行转换: ```python utc_time = datetime.utcnow() # 获取当前的UTC时间 beijing_time = convert_beijing_from_utc(utc_time) # 转换为北京时间 print("UTC时间:", utc_time) print("转换为北京时间:", beijing_time) ``` 引用中的代码演示了将当前的UTC时间转换为北京时间的过程。根据引用的说明,北京时间UTC时间加上8个小时。将UTC时间加上8个小时即可得到北京时间。通过调用`convert_beijing_from_utc`函数,可以将UTC时间转换为北京时间。 引用中的结果展示了具体的转换过程。其中,本地datetime时间为2023-03-02 10:49:08.657267,转换为北京时区后的时间为2023-03-02 10:49:08.657180+08:00,直接读取本地UTC时间为2023-03-02 02:49:08.657379,转换后的时间戳为1677725348.65718。 所以,通过将UTC时间加上8个小时,即可将UTC时间转换为北京时间。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [北京时间UTC时间转换](https://blog.csdn.net/weixin_35757704/article/details/129295351)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水能zai舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值