C++與C#的時間轉換

來源:互聯網
上載者:User

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

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.