详细解读C++CTime使用方法

简介: 详细解读C++CTime使用方法

  函数: ctime

  功 能: 把日期和时间转换为字符串

  用 法: char ctime(const time_t time);

  程序例:

  #include

  #include

  int main(void)

  {

  time_t t;

  t=time(t);

  printf("Today's date and time: %s\n", ctime(t));

  return 0;

  }//代码效果参考:http://www.ezhiqi.com/zx/art_7674.html

  注:若在linux下使用本函数,需要include 头文件

  

  类: CTime()

  创建CTime对象, 使他的时间为当前时间。

  类函数:

  GetMinute() 得到分钟.

  GetSecond() 得到秒;

  GetHour() 得到小时;

  GetDay() 得到 CTime持有的"天" ;

  GetMonth() 得到月;

  GetDayOfWeek() 得到 CTime持有的"天"是一星期中的那一天 ;

  GetYear() 得到年;

  GetTime() 返回用 __time32_t 表示的时间;

  在VC6下只支持到2039年,也就是2的32次方秒

  例:

  CTime T;

  int year;

  T=CTime(2008,8,8,8,8,8); //设置时间为2008年8月8号8时8分8秒

  //或者 CTime T =CTime::GetCurrentTime(); //设置为当前时间

  year=t.GetYear(); //获取年份

  =====================================================================

  C++中,CTime 与 CString转换

  CTime m_StartTime1 = CTime::GetCurrentTime();

  CString csStartTime = m_StartTime1.Format( "%Y%m%d%H%M%S" );

  一.将CString转为CTime的几种方法

  CString timestr = "2000年04月05日";

  int a,b,c ;

  sscanf(timestr.GetBuffer(timestr.GetLength()),"%d年%d月%d日",a,b,c);

  CTime time(a,b,c,0,0,0);

  or - -

  CString s("2001-8-29 19:06:23");

  int nYear, nMonth, nDate, nHour, nMin, nSec;

  sscanf(s, "%d-%d-%d %d:%d:%d", nYear, nMonth, nDate, nHour, nMin, nSec);

  CTime t(nYear, nMonth, nDate, nHour, nMin, nSec);

   or

  CString timestr = "2000年04月05日";

  int year,month,day;

  BYTE tt【5】;

  //get year

  memset(tt, 0, sizeof(tt));

  tt【0】 = timestr【0】;

  tt【1】 = timestr【1】;

  tt【2】 = timestr【2】;

  tt【3】 = timestr【3】;

  year= atoi((char )tt);

  //get month

  memset(tt, 0, sizeof(tt));

  tt【0】 = timestr【6】;

  tt【1】 = timestr【7】;

  month = atoi((char )tt);

  //get day

  memset(tt, 0, sizeof(tt));

  tt【0】 = timestr【10】;

  tt【1】 = timestr【11】;

  CTime time(year,month,day,0,0,0);

  从上面来看,很明显使用sscanf()函数的优势.

  二.将CTIme转换为CString的方法:

  CTime tmSCan = CTime::GetCurrentTime();

  CString szTime = tmScan.Format("'%Y-%m-%d %H:%M:%S'");

  这样得到的日期时间字符串就是以"2006-11-27 23:30:59"的格式.这是不是很方便呢?

  //取得CTime中的日期

  CString cstrDate = tmScan.Format("%Y-%m-%d");

  //取得CTime中的时间

  CString cstrTime = tmScan.Format("%H:%M-%S");

  sprintf还有个不错的表妹:strftime,专门用于格式化时间字符串的,用法跟她表哥很像,也是一大堆格式控制符,只是毕竟小姑娘家心细,她还要调用者指定缓冲区的最大长度,可能是为了在出现问题时可以推卸责任吧。这里举个例子:

  更多更好的sprintf()函数说明参考:《spirntf,你知道多少?》

  time_t t = time(0);

  //产生"YYYY-MM-DD hh:mm:ss"格式的字符串。

  char s【32】;

  strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", localtime(t));

  sprintf在MFC中也能找到他的知音:CString::Format,strftime在MFC中自然也有她的同道:CTime::Format,这一对由于从面向对象哪里得到了赞助,用以写出的代码更觉优雅

文章声明

作者:Owen

出处:

本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。该博客同步发在

HEXO-博客

相关文章
|
6月前
|
安全 算法 编译器
【C++基础语法 枚举】C/C++ 中enum枚举量的介绍:介绍enum枚举量在C/C中的作用和使用方法
【C++基础语法 枚举】C/C++ 中enum枚举量的介绍:介绍enum枚举量在C/C中的作用和使用方法
77 2
|
Linux 编译器 C++
linux系统中C++中构造与析构函数以及this的使用方法
linux系统中C++中构造与析构函数以及this的使用方法
59 0
|
存储 程序员 C++
C++中map的使用方法
map是一种使用键值对的数据结构,它允许我们使用键来查找值。map中的键必须是唯一且有序的,而值可以重复并且没有特定的顺序。 map中的数据以树结构进行组织,其中每个节点都由一个键和一个值组成。根据键的大小,节点被插入到正确的位置以保持树的有序性。这使得在map中查找值非常高效,因为我们可以使用二分查找来快速定位值。
286 0
|
3月前
|
安全 C++ Windows
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
|
4月前
|
C语言 C++ 开发者
C++基础知识(一:命名空间的各种使用方法)
C++在C的基础上引入了更多的元素,例如类,类的私密性要比C中的结构体更加优秀,引用,重载,命名空间,以及STL库,模板编程和更多的函数,在面向对象的编程上更加高效。C语言的优势则是更加底层,编译速度会更快,在编写内核时大多数都是C语言去写。 在C++中,命名空间(Namespace)是一种组织代码的方式,主要用于解决全局变量、函数或类的命名冲突问题。命名空间提供了一种封装机制,允许开发者将相关的类、函数、变量等放在一个逻辑上封闭的区域中,这样相同的名字在不同的命名空间中可以共存,而不会相互干扰。
|
安全 测试技术 C++
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
最近用到了gRPC,配置了很长时间,分享一下配置过程。先来看一下我准备的文件包(资源我放在最后)
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
|
存储 C++ 容器
【C++: list的使用方法(总结)】
【C++: list的使用方法(总结)】
111 1
|
6月前
|
编译器 C语言 C++
C/C++编译优化技巧:预编译头文件(PCH)使用方法
C/C++编译优化技巧:预编译头文件(PCH)使用方法
482 1
|
存储 网络安全 C++
C++ LibCurl 库的使用方法
LibCurl是一个开源的免费的多协议数据传输开源库,该框架具备跨平台性,开源免费,并提供了包括`HTTP`、`FTP`、`SMTP`、`POP3`等协议的功能,使用`libcurl`可以方便地进行网络数据传输操作,如发送`HTTP`请求、下载文件、发送电子邮件等。它被广泛应用于各种网络应用开发中,特别是涉及到数据传输的场景。
411 0
|
6月前
|
编译器
C++11 静态断言(static_assert)的介绍:介绍静态断言(static assert)在C++11 中的作用和使用方法
C++11 静态断言(static_assert)的介绍:介绍静态断言(static assert)在C++11 中的作用和使用方法
45 0