MFC中时间类的使用以及格式化输出时间

MFC提供了两个日期时间类,CTime 和CTimeSpan , CTime表示的是绝对时间,即基于格林威治平均时间(GMT) , CTimeSpan则表示的是时间间隔。

下面我们来写一个获取本地时间的MFC小程序。



程序界面如上所示:


首先我们需要添加几个编辑框控件并设置其属性为不可编辑,然后并为其添加成员变量,其类型为CString


下面我们开始写获取的函数代码


void CMFCApplication3Dlg::OnBnClickedGet()
{
// TODO:  在此添加控件通知处理程序代码






//CTime t = CTime::GetCurrentTime();
CTime m_time_get;
m_time_get = CTime::GetCurrentTime();


m_time = m_time_get.Format(_T("%X"));
m_date = m_time_get.Format(_T("%x"));


m_strdatatime = m_time_get.Format(_T("%Y-%m-%d %H-%M-%S 第%w周-%A"));


UpdateData(false);


}



以上代码就完成了时间类的初始化并获取到了当前时间并输出到MFC程序中了。


在写这个程序的时候遇到一个   就是

CTime m_time_get;
m_time_get = CTime::GetCurrentTime();

首先构造了这个类,然后当我在初始化这个类的时候,为什么会得不到GetCurrentTime()函数呢?

通过查MSDN ,发现这个函数是一个静态函数,只能通过静态方法来调用

以下是官方给出的文档:

// Example for CTime::GetCurrentTime
CTime t = CTime::GetCurrentTime();
 
 
 
 
 
 
2) 格式符号说明

%a —— 星期(缩写英文),如Fri;

%A —— 星期(全写英文),如Friday

%b —— 月份(缩写英文),如Oct

%B —— 月份(全写英文),如 October

%c —— 月/日/年 时:分:秒,如 10/13/06 19:17:17

%d —— 日期(1 ~ 31)

%H —— 时(24小时制)(0 ~ 23)

%I —— 时(12小时制)(0 ~ 12)

%j —— 一年当中的第几天,(1 ~ 366)

%m —— 月份(数字 1 ~ 12)

%M —— 分(0 ~ 59)

%p —— 12小时中的A M/PM指示,或者AM,或者PM

%S —— 秒(0 ~ 59)

%U —— 一年中的第几周,星期日作为每周的第一天(0 ~ 53)

%w —— 星期(数字表示,0 ~ 6,0代表星期日)

%W —— 一年中的第几周,星期一作为每周的第一天(0 ~ 53)

%x —— 月/日/年,%c的前半段

%X —— 时/分/秒,%c的后半段

%y —— 年份(不带世纪,如 06)

%Y —— 年份(带世纪,如 2006)

%z,%Z —— 时区名称或缩写,如果时区未知,此字符为空,如“中国标准时间”

%% —— %

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值