Tag: timezone

c / c ++ strptime()不解析%Z时区名称

我是C的新手。当我练习C来隐蔽时间来刺激来回构造时。 我发现有些不同。 请告诉我做错了什么。 #include #include #include /* test different format string to strptime ” %A, %b %d, %X %z %Y ” ” %A, %b %d, %X %Z %Y ” */ int main(int argc,char *argv[]) { char date[] = “6 Mar 2001 12:33:45”; char fmt[80]; struct tm tm; if (argc==1) return 0; strcpy(fmt,argv[1]); memset(&tm, 0, sizeof(struct […]

c中的strptime与时区偏移

我很难找到一种方法来解析时区,如下所示:“星期四,2011年9月1日09:06:03 -0400(美国东部时间)” 我需要在我的程序的更大方案中做的是接受char *并将其转换为time_t。 以下是我编写的一个简单的测试程序,试图找出strptime是否完全考虑时区,并且它似乎不是(当这个测试程序执行时,所有打印的数字在它们应该不同时是相同的)。 建议? 我也尝试使用GNU getdate和getdate_r,因为对于可能灵活的格式来说,这似乎是一个更好的选择,但我从编译器得到了一个“隐式函数声明”警告,暗示我没有包含正确的库。 还有其他我应该#include使用getdate吗? #include #include #include #include #ifndef __USE_XOPEN #define __USE_XOPEN #endif #include int main (int argc, char** argv){ char *timestr1, *timestr2, *timestr3; struct tm time1, time2, time3; time_t timestamp1, timestamp2, timestamp3; timestr1 = “Thu, 1 Sep 2011 09:06:03 -0400 (EDT)”; // -4, and with timezone name timestr2 = […]

获取C中的时区GMT偏移量

我正在使用标准的mktime函数将struct tm转换为纪元时间值。 tm字段在本地填充,我需要将纪元时间作为GMT。 tm有一个gmtoff字段,允许您为此目的设置本地GMT偏移量(以秒为单位)。 但我无法弄清楚如何获取这些信息。 当然必须有某个标准函数返回偏移量? localtime如何做到这一点?

在C / C ++中在本地时间和GMT / UTC之间转换

在C / C ++中,在本地时间和UTC之间转换日期时间的最佳方法是什么? “datetime”是指包含日期和时间的一些时间表示。 我会对time_t , struct tm或任何其他使其成为可能的表示感到满意。 我的平台是Linux。 这是我正在尝试解决的具体问题:我得到一对包含julian日期和一天中的秒数的值。 这些值是格林威治标准时间。 我需要将其转换为本地时区“YYYYMMDDHHMMSS”值。 我知道如何将朱利安日期转换为YMD,显然很容易将秒转换为HHMMSS。 然而,棘手的部分是时区转换。 我相信我可以找到解决方案,但我更愿意找到一种“标准”或“众所周知”的方式而不是磕磕绊绊。 可能相关的问题是在C中获取时区的夏令时转换日期