要想使用C语言来获取当前系统的时间,办法如下:

  需要提前准备的工作:

  

 #include <stdio.h>
#include <time.h>
#include <stdlib.h> int main()
{
time_t rawtime; //时间类型,由time.h中定义
struct tm *timeinfo; //关于时间的结构体类型,在time.h中定义
timeinfo = (struct tm*)malloc(sizeof(struct tm));
time(&rawtime); //获取时间,以秒计,从1970年1月1日00:00:00起算,存于rawtime
timeinfo = localtime(&rawtime); //转换为当地时间,存在结构体 struct tm中
return ;
}

   1.struct tm 时间结构的详细说明,在time.h 定义如下:

 
 #ifndef _TM_DEFINED

   struct tm {

   int tm_sec; /* 秒–取值区间为[0,59] */

   int tm_min; /* 分 - 取值区间为[0,59] */

   int tm_hour; /* 时 - 取值区间为[0,23] */

   int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */

   int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */

   int tm_year; /* 年份,其值从1900开始 */

   int tm_wday; /* 星期–取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */

   int tm_yday; /* 从每年的1月1日开始的天数–取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */

   int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/

   long int tm_gmtoff; /*指定了日期变更线东面时区中UTC东部时区正秒数或UTC西部时区的负秒数*/

   const char *tm_zone; /*当前时区的名字(与环境变量TZ有关)*/

   };

   #define _TM_DEFINED

   #endif

   //ANSI C标准称使用tm结构的这种时间表示为分解时间(broken-down time)。
 

  如果要以自定义的输出格式输出,可以直接操纵struct tm类型中的数据,但要注意的是:

  struct tm中的年份要加1900,即timeinfo->tm_year + 1900,因为系统中的时间是从1900年算起的。

  struct tm中的月份要加1,即timeinfo->tm_mon + 1,因为月份的计数是从0开始的

  3.有个问题在于,使用struct tm的指针时,并没有为这个结构体分配空间,而只是为一个指向这个结构体的指针分配了栈空间。这样容易导致在内存中野蛮地占  用其他有用的数据空间。所以,我的想法是,最好加上一句:

  timeinfo = (struct tm *)malloc(sizeof(struct tm));

 

  

  

使用C语言获取当前系统的时间的更多相关文章

  1. C语言获取Linux系统精确时间

    gettimeofday()函数的使用方法 1.函数原型 #include <sys/time.h> int gettimeofday(struct timeval *tv, struct ...

  2. C语言获取系统当前时间

    C语言获取系统当前时间 time_t -- 时间类型 struct tm -- 时间结构 time(&now)函数获取当前时间距1970年1月1日的秒数,以秒计数单位. localtime ( ...

  3. C语言获取系统当前时间转化成时间字符串

    因为保存的文件须要加上保存的时间,所以须要一个函数来将系统当前时间获取出来,同一时候转换成时间字符串.详细的时间代码例如以下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  4. Linux查看系统开机时间

    有时候需要查看Linux系统运行了多久时间,此时需要知道上次开机启动时间: 有时候由于断电或供电故障突然停机,需要查看Linux开机时间/重启时间:  下面总结一些查看Linux开机关机时间的方法(非 ...

  5. 使用js实现显示系统当前时间并实现倒计时功能并触发模态框(遮罩)功能

    常常在我们的网页中需要倒计时来触发一些函数,例如遮罩等,在本项目中,通过使用jquery,bootstrap,实现了显示系统当前时间,并且实现了倒计时的功能,倒计时实现后将会弹出模态框(遮罩层).模态 ...

  6. 使用date类和format类对系统当前时间进行格式化显示

    一:Date------------String 代码1:(代码二对显示出来的时间格式进行优化) package DateDemo; import java.text.SimpleDateFormat ...

  7. log4j向oracle中插入一条系统当前时间的sql语句

    配置log4j,要向oracle插入一条系统当前时间的sql语句,按网上查找的总是出现各种各样的报错,最后总结出的写法是: ### shezhi### log4j.rootLogger = debug ...

  8. 系统空闲时间判断&命名验证

    一.系统空闲时间判断 需要一个自动登录注销的功能,当鼠标移动和或者键盘输入的时候认为当前用户在线,否则过了设置时间就自动退出.好在前辈们留下了这样的一个类: MouseKeyBoardOperate: ...

  9. 在 Xen 虚拟机下修改系统当前时间

    在 Xen 虚拟机下修改系统当前时间 Xen 虚拟机默认不允许不同的虚拟机使用不同的系统时间,因此所有虚拟机的系统时间都会同宿主机的系统时间严格同步,用 date 命令修改虚拟机系统时间时虽然提示成功 ...

随机推荐

  1. hdoj 2277 Change the ball【找规律】

    Change the ball Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  2. Cookie 和Session

    会话:  简单理解: 用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 会话要解决的问题: 每个用户与服务器进行交互的过程中,各自会有一些数据,程序 ...

  3. mac svn命令

    转载:Mac下svn command命令 svn help command  获取子命令说明 svn info $URL 查看工作空间信息 svn list   显示当前目录下svn记录文件列表,不访 ...

  4. ORA-01858: a non-numeric character was found where a numeric was expected

    [ERROR] [2017-01-05 13:18:52,617] [org.hibernate.engine.jdbc.spi.SqlExceptionHelper.http-bio-8080-ex ...

  5. JAVA数据类型与DB2、Oracle、Sybase以及SQL Server对应关系

     java.sql.Types Java  IBM DB2  Oracle  Sybase  SQL-SERVER BIGINT java.lang.long  BIGINT  NUMBER (38, ...

  6. hdu4348 - To the moon 可持久化线段树 区间修改 离线处理

    法一:暴力! 让干什么就干什么,那么久需要可持久化线段树了. 但是空间好紧.怎么破? 不down标记好了! 每个点维护sum和add两个信息,sum是这段真实的和,add是这段整体加了多少,如果这段区 ...

  7. 文件上传~Uploadify上传控件~续(多文件上传)

    对于Uploadify文件上传之前已经讲过一次(文件上传~Uploadify上传控件),只不过没有涉及到多文件的上传,这回主要说一下多个文件的上传,首先,我们要清楚一个概念,多文件上传前端Upload ...

  8. 在32位Windows 8或Windows 7上安装Windows Phone 8 SDK

    这需要一点技巧的,其实WPSDK8是支持32位系统的,可因为微软脑残的限制,安装方法如下: 这里必需要有一个工具,OllyDbg 2.0,去官网下载即可. 启动OD,在菜单打开选项窗口,在Events ...

  9. mybatis0207 resultType、resultMap、延迟加载使用场景总结

    延迟加载: 延迟加载实现的方法多种多样,在只查询单表就可以满足需求,为了提高数据库查询性能使用延迟加载,再查询关联信息. mybatis提供延迟加载的功能用于service层. resultType: ...

  10. Java语言基础(七)

    Java语言基础(七) 今天在公司多呆了会,回来晚了 一.自动类型转换 在Java中,数据是可以转换的  例如可以将byte类型的赋给int类型的 这里希望你了解内存的变化,例如 在这里,我想你应该知 ...