c++与c#的时间转换示例分享

时间:2022-08-22 07:21:40 

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));
}

标签:时间转换
0
投稿

猜你喜欢

  • 关于C#连接FTP时路径问题的解决方法

    2021-10-03 18:53:50
  • SpringBoot FreeWorker模板技术解析

    2023-08-09 09:14:39
  • 简单探索 Java 中的惰性计算

    2023-11-16 20:25:28
  • Android集成百度地图开发流程和注意事项

    2022-03-21 01:56:01
  • 基于Jasypt对SpringBoot配置文件加密

    2023-07-13 20:13:03
  • mybatis中查询结果为空时不同返回类型对应返回值问题

    2023-02-15 10:50:31
  • java两种单例模式用法分析

    2023-10-06 03:51:34
  • Spring JPA整合QueryDSL的示例代码

    2022-12-02 18:56:22
  • Mybatis中连接查询和嵌套查询实例代码

    2021-08-23 13:24:31
  • Kotlin Lambda表达式实践使用介绍

    2023-08-16 06:11:14
  • 基于Java实现双向链表

    2022-11-17 11:39:16
  • Android 加载大图及多图避免程序出现OOM(OutOfMemory)异常

    2022-05-06 18:32:06
  • Android 消息队列模型详解及实例

    2023-04-06 10:49:43
  • Android 实现微信登录详解

    2022-07-14 06:34:11
  • Java编程中的检查型异常与非检查型异常分析

    2023-11-04 13:08:38
  • C#中使用@声明变量示例(逐字标识符)

    2022-04-15 14:21:48
  • Flutter源码分析之自定义控件(RenderBox)指南

    2022-09-08 21:17:28
  • 深入理解Java设计模式之享元模式

    2023-11-10 17:20:51
  • Spring Cloud Ribbon配置详解

    2023-11-25 01:32:50
  • 利用java制作简单的音乐播放器

    2022-01-21 11:39:32
  • asp之家 软件编程 m.aspxhome.com