localtime()方法的疑惑
- 1 dev-mini:cronc devone$ cat localtime.cpp
- 2 #include <time.h>
- 3 #include <cstdio>
- 4 #include <cstdlib>
- 5
- 6 int main(int argc, char *argv[])
- 7 {
- 8 time_t tNow =time(NULL);
- 9 time_t tEnd = tNow + ;
- struct tm* ptm = localtime(&tNow);
- struct tm* ptmEnd = localtime(&tEnd);
- char szTmp[] = {};
- strftime(szTmp,,"%H:%M:%S",ptm);
- char szEnd[] = {};
- strftime(szEnd,,"%H:%M:%S",ptmEnd);
- printf("%s \n",szTmp);
- printf("%s \n",szEnd);
- return EXIT_SUCCESS;
- }
- dev-mini:cronc devone$ g++ -o localtime localtime.cpp
- dev-mini:cronc devone$ ./localtime
- ::
- ::
- dev-mini:cronc devone$
time_t 类型时间 + 1800 ,但是结果输出都是后者。
修改代码如下:
- 1 hzsx@hzsx-server:~/file/test$ cat localtime.cpp
- 2 #include <time.h>
- 3 #include <cstdio>
- 4 #include <cstdlib>
- 5
- 6 using namespace std;
- 7
- 8 int main(int argc, char *argv[])
- 9 {
- time_t tNow =time(NULL);
- time_t tEnd = tNow + ;
- //struct tm* ptm = localtime(&tNow);
- //struct tm* ptmEnd = localtime(&tEnd);
- struct tm ptm = { };
- struct tm ptmEnd = { };
- localtime_r(&tNow, &ptm);
- localtime_r(&tEnd, &ptmEnd);
- char szTmp[] = {};
- strftime(szTmp,,"%H:%M:%S",&ptm);
- char szEnd[] = {};
- strftime(szEnd,,"%H:%M:%S",&ptmEnd);
- printf("%s \n",szTmp);
- printf("%s \n",szEnd);
- return EXIT_SUCCESS;
- }
- hzsx@hzsx-server:~/file/test$ g++ -o localtime localtime.cpp
- hzsx@hzsx-server:~/file/test$ ./localtime
- ::
- ::
- hzsx@hzsx-server:~/file/test$
两段代码在linux和mac下通过。
下面这段代码 使用了安全版本的LOCALTIME_R(),在win linux mac下都具有通用性。
- 1 #include <iostream>
- 2 #include <time.h>
- 3 #include <cstdlib>
- 4 #ifdef WIN32
- 5 #define LOCALTIME_R(tm,ti) localtime_s(tm,ti)
- 6 #else
- 7 #define LOCALTIME_R(tm,ti) localtime_r(ti,tm)
- 8 #endif
- 9 int main()
- {
- struct tm tmnow = {};
- time_t long_time;
- time(&long_time);
- LOCALTIME_R(&tmnow,&long_time);
- char buftime[];
- strftime(buftime, , "time is : %Y-%m-%d %H:%M:%S", &tmnow);
- std::cout << buftime << std::endl;
- return EXIT_SUCCESS;19 }
localtime()方法的疑惑的更多相关文章
- Python time localtime()方法
描述 Python time localtime() 函数类似gmtime(),作用是格式化时间戳为本地的时间.高佣联盟 www.cgewang.com 如果sec参数未输入,则以当前时间为转换标准. ...
- MapReduce 中job.setJarByClass()方法的疑惑
在调试mr实例的时候,遇到如下的情况,如图所示 说明:就是我的mr程序类名称和我设置的setJarByclass()中设置的不一样,但是程序竟然没有报错!!!!当时把我吓尿了 疑惑:如果这样设置的话, ...
- 关于ArrayList 中子方法 -- contains 疑惑解决
写之前先看下 ArrayList 子函数 contains 的Api 怎么介绍: boolean contains(Object o) 如果此列表中包含指定的元素,则返回 true ...
- Java基础:HashMap中putAll方法的疑惑
最近回顾了下HashMap的源码(JDK1.7),当读到putAll方法时,发现了之前写的TODO标记,当时由于时间匆忙没来得及深究,现在回顾到了就再仔细思考了下 @Override public v ...
- python_way day18 html-day4, Django路由,(正则匹配页码,包含自开发分页功能), 模板, Model(jDango-ORM) : SQLite,数据库时间字段插入的方法
python_way day18 html-day4 1.Django-路由系统 - 自开发分页功能 2.模板语言:之母板的使用 3.SQLite:model(jDango-ORM) 数据库时间字 ...
- Java中Set的contains()方法
Java中Set的contains()方法 -- hashCode与equals方法的约定及重写原则 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashCode() a ...
- 洗礼灵魂,修炼python(40)--面向对象编程(10)—定制魔法方法+time模块
定制魔法方法 1.什么是定制魔法方法 首先定制是什么意思呢?其实就是自定义了,根据我们想要的要求来自定义.而在python中,其实那些所谓的内置函数,内置方法,内置属性之类的其实也是自定义出来的,不过 ...
- python 方法调用
获取当前时间 today=time.strftime('%Y-%m-%d',time.localtime(time.time())) 取得时间相关的信息的话,要用到python time模块,pyth ...
- 【Python044--魔法方法:简单定制】
一.简单定制 基本要求: -- 定制一个计时器的类 -- start和stop代表开始计时和停止计时 -- 假设计时器对象t1,print(t1)和直接调用t1均显示结果 -- 当计时器未启动或停止计 ...
随机推荐
- 在非MFC程序中引用CString
CString在当今软件设计界里还是小有名气的,说它是MFC中使用的最多的类一点也不过,然而在使用sdk编windows程序的时候,确不能利用CString类,只能用sdk的运行时库,比如strlen ...
- Eclipse中查看Android模拟器SD卡目录
· 有时候用到Android模拟器来模拟SD卡相关操作,在Eclipse中可以直接查看SD卡目录: 首先,新建模拟器的时候要创建SD卡,存储的大小根据需要创建: 启动模拟器,在Eclipse中打开视图 ...
- PHP设计模式浅析
工厂模式 提到的最多, 用途也最广. 简单说就是: 定义一个用户创建对象的接口. 把创建对象的过程封装起来. 工厂类是指包含一个专门用来创建其他对象的方法的类,工厂类在多态性编程实践中是至关重要的,它 ...
- 使用LinkedList实现Stack与Queue
LinkedList数据结构是一种双向的链式结构,每一个对象除了数据本身外,还有两个引用,分别指向前一个元素和后一个元素. 栈的定义栈(Stack)是限制仅在线性表的一端进行插入和删除运算.(1)通常 ...
- POJ2524——Ubiquitous Religions
Ubiquitous Religions Description There are so many different religions in the world today that it is ...
- Revit 二次开发 沿弧形路径创建拉伸屋顶
沿弧形路径创建拉伸屋顶 Revit的API中只能按照直线创建拉伸屋顶,不能按照曲线创建拉伸屋顶.在Revit的界面当中,可以用 构建->内建模型,进行放样创建屋顶.但是没有办法代码内建模型. 可 ...
- 如何解决MySQLAdministrator 启动报错
运行环境:MySQL 5.1.41 win32 ZIP 非安装版MySQL GUI Tools 5.0(版本1.2.17.0) 运行MySQLAdministrator时提示:服务器服务或配置文件不能 ...
- 你想建设一个能承受500万PV/每天的网站吗?
(如果感觉有帮助,请帮忙点推荐,添加关注,谢谢!你的支持是我不断更新文章的动力.本博客会逐步推出一系列的关于大型网站架构.分布式应用.设计模式.架构模式等方面的系列文章) 你想建设一个能承受500万P ...
- Windows 7/8 创建WIFI热点
问题描述:很多人(特别是中国的大学生)都拥有一台联网的笔记本电脑,而手机使用的却是电信运营商提供的限制数量和速度的GPRS. 很多人不敢想象:联网的笔记本电脑能够将其流量以WiFi的形式共享出来供其它 ...
- js2word/html2word的简单实现
js2word/html2word的简单实现 以C#描述如下: StringBuilder sb = new StringBuilder(); sb.Ap ...