Chinaunix首页 | 论坛 | 博客
  • 博客访问: 290594
  • 博文数量: 63
  • 博客积分: 814
  • 博客等级: 军士长
  • 技术积分: 700
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-09 15:46
文章分类

全部博文(63)

文章存档

2017年(1)

2016年(4)

2015年(13)

2014年(9)

2012年(3)

2011年(33)

分类: C/C++

2011-09-26 17:53:54


  1. //64位时间转化

  2. 1315290545000000000 ->2011-09-06 14:29:05
  3. void ConvertNano2Time()
  4. {
  5.     char Time[128]={0},t[32]={0};
  6.     struct tm* pTm;
  7.     CString strNano;
  8.     UINT64 unix_val;

  9.     GetDlgItem(IDC_EDIT_NANO)->GetWindowText(strNano);
  10.     strcpy(t,strNano.GetBuffer(0));
  11.     sscanf(t,"%lld",&unix_val);
  12.     unix_val = unix_val/10;
  13.     const __time64_t tv_sec = unix_val / 100000000;
  14.     UINT64            tv_nano = (unix_val % 100000000) * 10;
  15.     pTm = _localtime64(&tv_sec);
  16.     if (pTm == NULL)
  17.     {
  18.         return;
  19.     }
  20.     else
  21.     {
  22.         sprintf(Time,"%4d-%02d-%02d %02d:%02d:%02d\n",pTm->tm_year+1900,pTm->tm_mon+1,pTm->tm_mday,pTm->tm_hour,pTm->tm_min,pTm->tm_sec);
  23.     }
  24.     GetDlgItem(IDC_EDIT_TIME)->SetWindowText(Time);
  25.     return;
  26. }
  27. //2011-09-06 14:29:05->1315290545000000000

  28. void ConvertTime2Nano()
  29. {    
  30.     char time[64]={0};
  31.     int year,mon,day,hour,min,second;
  32.     struct tm Tm;
  33.     CString strTime;
  34.     GetDlgItem(IDC_EDIT_TIME)->GetWindowText(strTime);

  35.     sscanf(strTime.GetBuffer(0),"%4d-%02d-%02d %02d:%02d:%02d",&Tm.tm_year,&Tm.tm_mon,&Tm.tm_mday,&Tm.tm_hour,&Tm.tm_min,&Tm.tm_sec);
  36.     Tm.tm_year-=1900;
  37.     Tm.tm_mon-=1;
  38.     __time64_t timeSecond = _mktime64(&Tm);
  39.     timeSecond*=1000000000;
  40.     CString strSecond;
  41.     strSecond.Format("%lld",timeSecond);
  42.     GetDlgItem(IDC_EDIT_NANO)->SetWindowText(strSecond);

  43. }
阅读(929) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~