• C++与C#的时间转换


    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(&ltime);
    cout<<ctime(&time);
    return 0;
    }

    ctime函数:
       char *ctime(const time_t *timer);
       timer:time_t类型指针
       返回值:格式为“星期 月 日 小时:分:秒 年\n\0”的字符串


    localtime函数:(gmtime函数与之类似)
       struct tm *localtime(const time_t *timer);
       timer:time_t类型指针
       返回值:以tm结构表示的时间指针


    asctime函数:
       char *asctime(const struct tm *timeptr);
       timeptr:结构tm指针
       返回值:格式为“星期 月 日 小时:分:秒 年\n\0”的字符串
    例:

    #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: %s\n",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));
    }
  • 相关阅读:
    【NIO】NIO之浅谈内存映射文件原理与DirectMemory
    【搜索引擎】全文索引数据结构和算法
    【多线程】并发与并行
    【缓存】缓存穿透、缓存雪崩、key重建方案
    布隆过滤器
    多层路由器通信
    【路由】设置二级路由器
    【硬件】集线器,交换机,路由器
    JZOJ100048 【NOIP2017提高A组模拟7.14】紧急撤离
    JZOJ100045 【NOIP2017提高A组模拟7.13】好数
  • 原文地址:https://www.cnblogs.com/danshui/p/2297984.html
Copyright © 2020-2023  润新知