C++时间与字符串如何转换

今天小编给大家分享一下C++时间与字符串如何转换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

成都创新互联致力于成都网站设计、网站制作、外贸营销网站建设,成都网站设计,集团网站建设等服务标准化,推过标准化降低中小企业的建站的成本,并持续提升建站的定制化服务水平进行质量交付,让企业网站从市场竞争中脱颖而出。 选择成都创新互联,就选择了安全、稳定、美观的网站建设服务!

1. 1、常用的时间存储方式
2. 
3. 1)time_t类型,这本质上是一个长整数,表示从1970-01-01 00:00:00到目前计时时间的秒数,如果需要更精确一点的,可以使用timeval(time_t *t); //取得从1970年1月1日至今的秒数
24. char *asctime(const struct tm *tm); //将结构中的信息转换为真实世界的时间,以字符串的形式显示
25. char *ctime(const time_t *timep); //将timep转换为真是世界的时间,以字符串显示,它和asctime不同就在于传入的参数形式不一样
26. struct tm *gmtime(const time_t *timep); //将time_t表示的时间转换为没有经过时区转换的UTC时间,是一个struct tm结构指针
27. struct tm *localtime(const time_t *timep); //和gmtime类似,但是它是经过时区转换的时间。
28. time_t mktime(struct tm *tm); //将struct tm 结构的时间转换为从1970年至今的秒数
29. int gettimeofday(struct timeval(time_t time1, time_t time2); //返回两个时间相差的秒数
31. 
32. 
33. 3、时间与字符串的转换
34. 
35. 需要包含的头文件如下
36. 
37. #include 
38. #include 
39. #include 
40. #include 
41. 
42. 1)unix/windows下时间转字符串参考代码
43. 
44. time_t t;  //秒时间
45. tm* local; //本地时间
46. tm* gmt;   //格林威治时间
47. char buf[128]= {0};
48. 
49. t = time(NULL); //获取目前秒时间
50. local = localtime(&t); //转为本地时间
51. strftime(buf, 64, "%Y-%m-%d %H:%M:%S", local);
52. std::cout << buf << std::endl;
53. 
54. gmt = gmtime(&t);//转为格林威治时间
55. strftime(buf, 64, "%Y-%m-%d %H:%M:%S", gmt);
56. std::cout << buf << std::endl;
57. 
58. 
59. 
60. 2)unix字符串转时间参考代码
61. 
62. 
63. tm tm_;
64. time_t t_;
65. char buf[128]= {0};
66. 
67. strcpy(buf, "2012-01-01 14:00:00");
68. strptime(buf, "%Y-%m-%d %H:%M:%S", &tm_); //将字符串转换为tm时间
69. tm_.tm_isdst = -1;
70. t_  = mktime(&tm_); //将tm时间转换为秒时间
71. t_ += 3600;  //秒数加3600
72. 
73. tm_ = *localtime(&t_);//输出时间
74. strftime(buf, 64, "%Y-%m-%d %H:%M:%S", &tm_);
75. std::cout << buf << std::endl;
76. 
77. 
78. 
79. 3)由于windows下没有strptime函数,所以可以使用scanf来格式化
80. 
81. 
82. time_t StringToDatetime(char *str)
83. {
84. tm tm_;
85. int year, month, day, hour, minute,second;
86. "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);
87. tm_.tm_year  = year-1900;
88. tm_.tm_mon   = month-1;
89. tm_.tm_mday  = day;
90. tm_.tm_hour  = hour;
91. tm_.tm_min   = minute;
92. tm_.tm_sec   = second;
93. tm_.tm_isdst = 0;
94. 
95. time_t t_ = mktime(&tm_); //已经减了8个时区
96. return t_; //秒时间
97. }
98.

以上就是“C++时间与字符串如何转换”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注创新互联行业资讯频道。


分享文章:C++时间与字符串如何转换
分享地址:http://azwzsj.com/article/gpsghp.html