
getlocaltime里面是没有时区信息的。
你可以这样:
time_t time_utc = 0;struct tm p_tm_time;
int time_zone = 0;
p_tm_time = localtime( &time_utc ); //转成当地时间
time_zone = ( p_tm_time->tm_hour > 12 ) ( p_tm_time->tm_hour-= 24 ) : p_tm_time->tm_hour;
把0时间转为当地时间,得到的是带时区的结果。
若要将 UTC 转换为本地时间,请按照下列步骤 *** 作:
确定您的本地时间偏移量,从 UTC 时间。为此请 Microsoft 基于 Windows 的计算机上按照下列步骤 *** 作:
单击 开始,单击 运行,键入 timedatecpl,然后单击 确定。
单击 时区 选项卡,然后验证选中了您的本地时区。 如果不选择您的本地时区,则请在可用的时区的列表中单击它。
在每个本地区域列表项开始时显示本地时间偏移量。例如对于-5: 00 是本地时间偏移量为东部时间 (美国和加拿大):
(GMT-5:00) 东部时间 (美国和加拿大)
添加本地时间偏移量为 UTC 时间。
例如您的本地时间偏移量是-5: 00,然后如果 UTC 时间显示为 11: 00,添加-5 到 11。偏移量的调整时该时间设置为 06: 00 (上午 6: 00)。
注意 该日期也采用 UTC 格式。例如您的本地时间偏移量是-8: 00,并且如果该文件的 UTC 时间显示为 00: 00 (午夜 12: 00) 在星期一,调整后的时间是 16: 00 星期日 (下午 4: 00,星期日)。
调整为夏时制时间。
UTC 时间不以反映夏令时进行调整。 如果您的时区参与夏时制时间,添加当夏时制时间是有效的文件的偏移量调整时间的时间差别。例如对于如果在您的时区中的夏令时的标准时间提前一小时,将 1 小时的时间添加到偏移量调整时间。
如果您的本地时间使用 12 小时格式,请将 24 小时时间格式转换为 12 小时时间格式。要在转换请按照下列步骤 *** 作,请执行以下 *** 作:
如果偏移量调整的时间 12: 01 和 23: 59,(含) 之间,之间减去 12 从在调整后的时间,然后将附加 下午
如果已调整的时间介于 00: 01 和 11: 59,(含) 之间,留在调整后的时间为是,然后将附加 上午
如果已调整的时间 00: 00,则使用 午夜 12: 00。
如果已调整的时间 12: 00,使用 中午 12: 00。
获取当前时间戳,ahk没有提供一个默认的函数,其实实现起来也不是很难
unix时间戳实际上是1970年1月1日 0点准点的时间到当前时间(UTC时区)的秒数。也有毫秒级的时间戳,但是一般的应用场景,秒就够用了。
autohotkey 关于时间格式化的函数FormatTime都提供了,竟然就没有一个直接获取时间戳的,也是挺迷
另外还有两个对时间进行计算的函数 DateDiff和DateAdd
这次我们用DateDiff函数进行实现
下面了解ahk获取时间相关的 *** 作
将 YYYYMMDDHH24MISS 时间戳转换为指定的日期/时间格式
第一个参数是特定格式的时间,如果省略这个参数就表示使用当前时间。
YYYYMMDDHH24MISS 格式中元素表示的含义分别为:
所以我们格式化时间,只需要给出后面的格式化字符串,能够用的项目也是比较复杂的
下面的格式必须 单独 使用; 即在 Format 参数中不能含有其他格式或文本 这些格式不区分大小写
下列选项可以紧跟在 YYYYMMDDHH24MISS 时间戳后(如果没有时间戳, 它们也可以单独使用) 在下面的例子中, 请注意最后的四项间没有逗号:
R : 反转 让日期在时间之前(仅当 Format 为空时才有意义)
Ln : 如果此选项 不 存在, 则使用当前用户区域设置来格式化字符串 要使用系统的区域设置, 请指定 LSys 要使用特殊的区域设置, 请指定字母 L 后面跟着十六进制或十进制的区域设置标识符(LCID) 关于如何构建 LCID 的信息, 请在 >
程序如下:
import datetime
# 获取当前时间
current_time = datetimedatetimeutcnow() + datetimetimedelta(hours=8)
# 转换时区
new_timezone = datetimetimezone(datetimetimedelta(hours=-5))
converted_time = current_timeastimezone(new_timezone)
# 输出转换后的时间
print('UTC+8时间:', current_time)
print('UTC-5时间:', converted_time)
日期:DateTimeNowToShortDateString
时间:DateTimeNowToFileTime
可以这样用:
ResponseWrite(DateTimeNowToShortDateString() + "
");
ResponseWrite(DateTimeNowToShortTimeString() + "
");
输出:
2007-1-29
8:49
ResponseWrite(DateTimeNowToLongDateString() + "
");
ResponseWrite(DateTimeNowToLongTimeString() + "
");
输出:
2007年1月29日
8:49:15
不知合不合你要求
我是要VS2005下使用,很好用。可查看MSDN以下简单例出:
NET Framework 类库
DateTime 成员
请参见 构造函数 字段 方法 属性 显式接口实现
全部折叠 全部展开 成员选项:全部显示 成员选项:已筛选
包括继承的成员
包括受保护的成员
仅 NET Compact Framework 成员
表示时间上的一刻,通常以日期和当天的时间表示。
下表列出了由 DateTime 类型公开的成员。
公共构造函数
名称 说明
DateTime 已重载。初始化 DateTime 结构的新实例。
页首
公共字段
名称 说明
MaxValue 表示 DateTime 的最大可能值。此字段为只读。
MinValue 表示 DateTime 的最小可能值。此字段为只读。
页首
公共属性
名称 说明
Date 获取此实例的日期部分。
Day 获取此实例所表示的日期为该月中的第几天。
DayOfWeek 获取此实例所表示的日期是星期几。
DayOfYear 获取此实例所表示的日期是该年中的第几天。
Hour 获取此实例所表示日期的小时部分。
Kind 获取一个值,该值指示由此实例表示的时间是基于本地时间、协调通用时间 (UTC),还是两者皆否。
Millisecond 获取此实例所表示日期的毫秒部分。
Minute 获取此实例所表示日期的分钟部分。
Month 获取此实例所表示日期的月份部分。
Now 获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为本地时间。
Second 获取此实例所表示日期的秒部分。
Ticks 获取表示此实例的日期和时间的刻度数。
TimeOfDay 获取此实例的当天的时间。
Today 获取当前日期。
UtcNow 获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为协调通用时间 (UTC)。
Year 获取此实例所表示日期的年份部分。
以上就是关于用C语言获取本地的时区全部的内容,包括:用C语言获取本地的时区、请教如何把当前时间转换成utc格式的、Autohotkey v2 获取当前时间戳函数的实现 ahk所有关于时间的 *** 作总结等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)