谢谢原创作者,为了以后找得到了才转载过来的。。。

变量定义:

CString strDate;

COleDateTime ole_time;

CTime c_time;

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

1 CString->COleDateTime

strDate = "2009-4-25 12:30:29";

ole_time.ParseDateTime(strDate);

2 COleDateTime->CString

strDate = ole_time.Format("%Y-%m-%d %H:%M:%S");

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

3 COleDateTime->CTime

SYSTEMTIME sys_time;

ole_time.GetAsSystemtime(sys_time);

c_time = CTime(sys_time);

4 CTime->COleDateTime

SYSTEMTIME sys_time;

c_time.GetAsSystemTime(sys_time);

ole_time = COleDateTime(sys_time);

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

5 CTime->CString

strDate = c_time.Format("%Y-%m-%d %H:%M:%S");

MFC中相关类:

CTime

CTimeSpan

COleDateTime

COleDateTimeSpan

API中相关时间处理函数:

SystemTimeToFileTime

FileTimeToSystemTime

FileTimeToLocalTime

SetLocalTime

这里再复习一下中学的地理。。@-@

UTC是协调世界时(Universal Time Coordinated)英文缩写,是由国际无线电咨询委员会规定和推荐,并由国际时间局(BIH)负责保持的以秒为基础的时间标度。UTC相当于本初子 午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(GMT)来表示.北京时间比UTC时间早8小时,以1999年1月1日0000UTC为例, UTC时间是零点,北京时间为1999年1月1日早上8点整。

GMT(Greenwich Mean Time)是格林尼治平均时:

由于地球轨道并非圆形,其运行速度又随着地球与太阳的距离改变而出现变化,因此视太阳时欠缺均匀性。视太阳日的长度同时亦受到地球自转轴相对轨道 面的倾斜度所影响。为着要纠正上述的不均匀性,天文学家计算地球非圆形轨迹与极轴倾斜对视太阳时的效应。平太阳时就是指经修订后的视太阳时。在格林尼治子 午线上的平太阳时称为世界时(UT0),又叫格林尼治平时(GMT)。

为了确保协调世界时与世界时(UT1)相差不会超过0.9秒,有需要时便会在协调世界时内加上正或负闰秒。因此协调世界时与国际原子时(TAI)之间会出现若干整数秒的差别。位于巴黎的国际地球自转事务中央局(IERS)负责决定何时加入闰秒。

--------------------------------------------------------------------------------

时间单位转换

1s(秒:Second) = 1000 ms(毫秒:millisecond)

= 1000000 μs(微秒:microsecond)

= 1000000000 ns(纳秒:nanosecond)

= 1000000000000 ps(皮秒)

= 1000000000000000 fs(飞秒)

--------------------------------------------------------------------------------

1.得到当前时间

这里需要注意的是,GetLocalTime得到的是本地时区的时间,而GetSystemTime是得到UTC时间。

COleDateTime odt = COleDateTime::GetCurrentTime();

String str = odt.Format("%Y-%m-%d %H:%M:%S";

COleDateTime::Format 的使用,请参阅msdn关于CTR库中strftime, wcsftime的解释

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_strftime.2c_.wcsftime.asp

2.在指定时间的基础上,加上或者减去一段时间后,得到新的日期时间

MFC:

COleDateTime odt = COleDateTime::GetCurrentTime();//得到当前时间

COleDateTimeSpan odts;

odts.SetDateTimeSpan(0, 15, 0, 0);//15个小时的时间差

odt += odts;

CString str = odt.Format("%Y-%m-%d %H:%M:%S";

SDK:

//FILETIME是以100纳秒作为单位

//以下宏定义了1小时内有多少个该单位

#define Nano100_SEC_IN_HOUR (ULONGLONG)60*60*10000000

SYSTEMTIME st;

GetLocalTime(&st);

FILETIME ft={0};

SystemTimeToFileTime(&st, &ft);

ULARGE_INTEGER ui;

ui.LowPart = ft.dwLowDateTime;

ui.HighPart = ft.dwHighDateTime;

ui.QuadPart += 16 * Nano100_SEC_IN_HOUR;//当前时间加上16个小时后的时间

ft.dwLowDateTime = ui.LowPart;

ft.dwHighDateTime = ui.HighPart;

FileTimeToSystemTime(&ft, &st);

//st结构体中的变量即最后结果

3.根据给定的日期,得到该日期的星期数,再得到该星期开始和结束的日期

这个功能是当时帮一个mm的忙完成的。。呵呵

COleDateTime t1, tWeekBegin, tWeekEnd;

t1.SetDate(2006,8,8);

//这里需要注意的是西方人的习惯和我们不一样,他们把星期天当作每个星期的第一天,如下面的函数GetDayOfWeek就是如此,所以我做了下面的一些转换

int nXingQi = t1.GetDayOfWeek();

COleDateTimeSpan tsWeekBegin, tsWeekEnd;

if ( 1 == nXingQi

{

tsWeekBegin.SetDateTimeSpan(6, 0, 0, 0);

tsWeekEnd.SetDateTimeSpan(0, 0, 0, 0);

}

else

{

tsWeekBegin.SetDateTimeSpan(nXingQi-2, 0, 0, 0);

tsWeekEnd.SetDateTimeSpan(8-nXingQi, 0, 0, 0);

}

tWeekBegin = t1 - tsWeekBegin;

tWeekEnd = t1 + tsWeekEnd;

CString str1 = tWeekBegin.Format("%Y-%m-%d";

CString str2 = tWeekEnd.Format("%Y-%m-%d";

4. CString -> COleDateTime

CString str = "2006-09-04 11:22:33";

COleVariant VariantTime;

VariantTime = str;

VariantTime.ChangeType(VT_DATE);

COleDateTime DataTime = VariantTime;

int nYear = DataTime.GetYear();

int nMonth = DataTime.GetMonth();

int nDay = DataTime.GetDay();

int nHour = DataTime.GetHour();

int nMin = DataTime.GetMinute();

int nSec = DataTime.GetSecond();

ctimespan 获取毫秒_转CString , COleDateTime, CTime相互转换和对时间的一些处理相关推荐

  1. CString , COleDateTime, CTime相互转换和对时间的一些处理

    变量定义:     CString strDate;     COleDateTime ole_time;     CTime c_time; ============================ ...

  2. ctimespan 获取毫秒_VC++中通过CTime类获取日期差

    VC++中的Date Time Picker控件可以设置日期时间,我们经常要获取两个日期之间的时间差,比如水母最近在写的<水石居存款助手>中,计算活期储蓄利息的时候就需要获取日期差. Da ...

  3. JAVA获取GMT毫秒_关于java:如何获得GMT当前时间?

    本问题已经有最佳答案,请猛点这里访问. Possible Duplicate: How can I get the current date and time in UTC or GMT in Jav ...

  4. CString时间字符串,COleDateTime,CTime类之间的转换

    /  // 1.CString类型的时间串,转换到COleDateTime  // // CString str ="2003-10-27 6:24:37"; //CString- ...

  5. PHP获取毫秒时间戳,利用microtime()函数

    PHP获取毫秒时间戳,利用microtime()函数 php本身没有提供返回毫秒数的函数,但提供了一个microtime()函数,借助此函数,可以很容易定义一个返回毫秒数的函数. php的毫秒是没有默 ...

  6. Linux下获取毫秒级时间差

    Linux下获取毫秒级时间差 使用Linux的gettimeofday函数可以达到这个目的  其中t1=t_start.tv_sec是公元1970年至今的时间(换算为秒)  t2=t_start.tv ...

  7. simpledateformat 毫秒_阿里巴巴 | 为啥代码中禁用static修饰SimpleDateFormat?

    来自:8rr.co/4KkS 在项目开发过程中经常遇到时间处理,但是你真的用对了吗,理解阿里巴巴开发手册中禁用static修饰SimpleDateFormat吗? 通过阅读本篇文章你将了解到: 为什么 ...

  8. PHP 获取毫秒级别的时间戳,以及和日期之间的相互转换

    最近在写一个打卡的项目.结果发现"秒"已经不能满足这群小B的需求了,查了一些资料于是就有了这篇文章. public function index(){$msectime = $th ...

  9. C++在linux环境下获取毫秒、微妙级别时间

                    C++在linux环境下获取毫秒.微妙级别时间 一.时间单位简介:     1秒  = 1000毫秒     1秒  = 1000000微秒     1秒  = 100 ...

最新文章

  1. android 使用jar里 aidl,Android Studio中用gradle打包带AIDL文件的jar文件
  2. 为什么安装Android SDK后无法安装flatform?
  3. SAP 权限对象设置及在程序中的应用
  4. dedeCMS 静态页面的倒计时插件(原生VS自定义)
  5. linux中忘记mysql用户root密码解决方案
  6. 《Android开发艺术探索》读书笔记 (7) 第7章 Android动画深入分析
  7. 学习Java,真的可以月薪过万嘛?真实个人经历告诉你,记录了平时学习的内容以及学习过程中最真实的感受(五)
  8. python读取同花顺数据_python爬取同花顺数据
  9. 分镜头剧本模板、故事图模板
  10. 轻量级高并发物联网服务器接收程序源码(仅仅是接收硬件数据程序 ,没有web端
  11. python鸡兔同笼头35只_python_鸡兔同笼问题
  12. linux下jmeter性能测试
  13. 电影票房预测-kaggle项目Python项目
  14. 【解题总结】SEERC 2019(Codeforces Gym 102392)
  15. Kubernetes 探针使用介绍
  16. GTO与OKR工具选择
  17. mysql小王 保密_街机斗地主小王搓牌
  18. 无需改动代码实现jasypt加密
  19. 导数在梯度下降算法中的意义理解
  20. 车联网各领域头部企业排行榜

热门文章

  1. 汽车汽配行业电子采购系统降低采购成本,增强企业竞争优势
  2. 八大排序(一):四种简单的排序(直接插入排序、希尔排序、冒泡排序、选择排序)
  3. FFmpeg开发之旅(二)---音频解码
  4. 常见测试用例设计之键盘
  5. 游戏斗兽棋,童年的回忆
  6. 【linux驱动开发】i2c驱动框架之温湿度传感器htu21d
  7. C语言——函数递归实现
  8. 【附源码】计算机毕业设计java校园一卡通管理系统设计与实现
  9. IMPALA跟HIVE实践中的小绝招
  10. 最全的视频转换器工具清单,这18款免费视频格式转换器记得收藏