c++与c#的时间转换示例分享_C#教程-查字典教程网
c++与c#的时间转换示例分享
c++与c#的时间转换示例分享
发布时间:2016-12-28 来源:查字典编辑
摘要:1.C++中的时间:(1)time_t其实是一个64位的longint类型(2)time函数:函数简介:函数名:time头文件:time.h...

1.C++中的时间:

(1) time_t其实是一个64位的long int类型

(2) time函数:

函数简介:

函数名: time

头文件: time.h

函数原型:time_t time(time_t *timer)

功能: 获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数,然后调用localtime将time_t所表示的CUT时间转换为本地时间(我们是+8区,比CUT多8个小时)并转成struct tm类型,分别表该类型的各数据成员示年月日时分秒。

显示系统当前时间:

复制代码 代码如下:

int main()

{

time_t ltime;

time(<ime);

cout<<ctime(&time);

return 0;

}

ctime函数:

char *ctime(const time_t *timer);

timer:time_t类型指针

返回值:格式为“星期 月 日 小时:分:秒 年n”的字符串

localtime函数:(gmtime函数与之类似)

struct tm *localtime(const time_t *timer);

timer:time_t类型指针

返回值:以tm结构表示的时间指针

asctime函数:

char *asctime(const struct tm *timeptr);

timeptr:结构tm指针

返回值:格式为“星期 月 日 小时:分:秒 年n”的字符串

例:

复制代码 代码如下:

#include<stdio.h>

#include <stddef.h>

#include <time.h>

int main(void)

{

time_t timer; //time_t就是long int 类型

struct tm *tblock;

timer = time(NULL);//这一句也可以改成time(&timer);

tblock = localtime(&timer);

printf("Local time is: %sn",asctime(tblock));

return 0;

}

2.将C++中time_t类型转换成C#中的DateTime类型:

复制代码 代码如下:

//time_t是世界时间, 比 本地时间 少8小时(即28800秒)

double seconds = 1259666013 + 28800;

double secs = Convert.ToDouble(seconds);

DateTime dt = new DateTime(

1970, 1, 1, 0, 0, 0, DateTimeKind.Unspecified).AddSeconds(secs);

//TimeSpan span =

// TimeSpan.FromTicks(seconds*TimeSpan.TicksPerSecond);

Console.WriteLine(dt);

3.将C#的DateTime类型转换成C++的time_t类型

复制代码 代码如下:

public static long DateTimeToTime_t(DateTime dateTime)

{

long time_t;

DateTime dt1 = new DateTime(1970, 1, 1,0,0,0);

TimeSpan ts =dateTime - dt1;

time_t = ts.Ticks/10000000-28800;

return time_t;

}

static void Main(string[] args)

{

DateTime dateTime = new DateTime(2009,12,1,19,13,33);

Console.WriteLine(DateTimeToTime_t(dateTime));

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新C#教程学习
    热门C#教程学习
    编程开发子分类