zoukankan      html  css  js  c++  java
  • 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));
    }
  • 相关阅读:
    学习算法和刷题的思路指南
    提交包到iTunes Connect时构建版本“正在处理”后直接消失的问题
    对网络通讯的一些学习和总结
    iOS开发 dispatch_block_t 简单的实现不带参数的回调函数
    app刚开始启动时(即:appdelegate文件中)可以写的几个功能
    拷贝项目时,自己总结的一些小事项
    iOS开发中遇到的一些问题以及解决办法总结
    宝库~iOS开发笔试题
    GCD 之线程死锁
    iOS开发之旅之懒加载
  • 原文地址:https://www.cnblogs.com/danshui/p/2297984.html
Copyright © 2011-2022 走看看