C语言time取毫秒,C++ 时间操作(获取毫秒级)

//使用标准C语言的time函数,可以满足一般性需要

#include

#include

int main( void )

{

time_t t = time( 0 );

char tmp[64];

strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",

localtime(&t) );

puts( tmp );

return 0;

}

//GetLocalTime获取当前系统时间,精确到微妙级

#include

#include

int main( void )

{

SYSTEMTIME sys;

GetLocalTime( &sys );

printf( "M/d/d d:d:d.d 星期\n"

,sys.wYear,sys.wMonth,sys.wDay

,sys.wHour,sys.wMinute,sys.wSecond,sys.wMilliseconds

,sys.wDayOfWeek);

return 0;

}

//利用win32 API QueryPerformanceFrequency与QueryPerformanceCounter,可以更精确精确的计算,例如拿来测试,网络抓包的精确分析

#include

#include

#include

using namespace std;

int main() {

LARGE_INTEGER lv,lv_b;

// 获取每秒多少CPU

Performance Tick

QueryPerformanceFrequency( &lv );

//

转换为每个Tick多少秒

double

secondsPerTick = 1.0 / lv.QuadPart;

QueryPerformanceCounter( &lv_b );

for ( size_t

i = 0; i < 100; ++i ) {

// 获取CPU运行到现在的Tick数

QueryPerformanceCounter( &lv );

cout.precision( 6 );

// 计算CPU运行到现在的时间

// 比GetTickCount和timeGetTime更加精确

LONGLONG duration = lv.QuadPart-lv_b.QuadPart;

double timeElapsedTotal = secondsPerTick * duration;

cout << fixed

<< showpoint

<< timeElapsedTotal

<< endl;

//printf( "%lf \n", timeElapsedTotal ) ;

}

return

0;

}

//如果上面还不能满足你的需求,请看下面

可以提供纳秒级的精确计算,而且跨平台

CString

GetTimeStr()

{

SYSTEMTIME

time;

GetLocalTime(&time);

CString

year;

CString

month;

CString

day;

year.Format(_T("%d"),

time.wYear);

month.Format(_T("%d"),

time.wMonth);

day.Format(_T("%d"),

time.wDay);

month = time.wMonth

< 10 ? (_T("0") + month):month;

day = time.wDay

< 10 ? (_T("0") + day):day;

wstring strTime = year +

_T("/") + month + _T("/") + day + _T(" ");

WCHAR* pTime = new

WCHAR[30];

wstring strFormat =

_T("HH:mm:ss");

GetTimeFormat(LOCALE_INVARIANT

, LOCALE_USE_CP_ACP, &time, strFormat.c_str(),

pTime, 30);

strTime +=

pTime;

CString

milliseconds;

milliseconds.Format(_T("%d"),

time.wMilliseconds);

strTime += _T(".") +

milliseconds;

return

strTime.c_str();

}

返回的日期时间的格式 如:2012/04/10 14:32:25.456

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 C++获取当前时间并转换为毫秒的方法如下: ```c++ #include <chrono> double getCurrentTimeInMilliSeconds() { auto currentTime = std::chrono::high_resolution_clock::now(); auto duration = currentTime.time_since_epoch(); return std::chrono::duration_cast<std::chrono::milliseconds>(duration).count(); } ``` 这个函数使用了 C++11 引入的 `chrono` 库来获取当前时间,将其转换为毫秒并返回。需要注意的是,返回值为 `double` 类型,因为毫秒值可能是小数。 ### 回答2: 在C语言中,可以使用time.h头文件中的clock()函数获取当前时间毫秒数。clock()函数返回的是自程序启动以来所消耗的CPU时间,单位是时钟周期,而不是直接的毫秒数。因此,我们需要将时钟周期数转换为所需的毫秒数。 首先,我们需要定义一个变量来存储clock()函数返回的时钟周期数,例如定义一个类型为clock_t的变量clockCount。然后,调用clock()函数,并将返回值赋值给clockCount。 接下来,需要获取CPU的时钟周期数间隔,通常使用宏CLOCKS_PER_SEC来表示每秒的时钟周期数。可以使用CLOCKS_PER_SEC来计算每个时钟周期所代表的毫秒数,即 1000 / CLOCKS_PER_SEC。 将clockCount乘以每个时钟周期所代表的毫秒数,即可得到当前时间毫秒数。由于要将其转换为double类型,需要将结果进行强制类型转换。 下面是一个示例代码: ```c #include <stdio.h> #include <time.h> double getCurrentTimeMilliseconds() { clock_t clockCount = clock(); double milliseconds = (double)clockCount / (CLOCKS_PER_SEC / 1000); return milliseconds; } int main() { double timeMilliseconds = getCurrentTimeMilliseconds(); printf("当前时间毫秒数为:%lf\n", timeMilliseconds); return 0; } ``` 在上述示例中,getCurrentTimeMilliseconds()函数用来获取当前时间毫秒数,并返回一个double类型的值。在main()函数中调用该函数,得到当前时间毫秒数,并打印输出。 需要注意的是,clock()函数返回的是自程序启动以来所消耗的CPU时间,而不是真实的系统时间。如果需要获取真实的系统时间,可以使用time()函数来替代clock()函数。 ### 回答3: 在C语言中,要获取当前时间毫秒并将其转换为double型数据,可以使用time.h头文件中的函数来实现。 首先,我们需要包含time.h头文件: ```c #include <stdio.h> #include <time.h> ``` 然后,在主函数中,我们可以定义一个变量来保存当前时间毫秒: ```c int main() { clock_t milliseconds; ``` 接下来,我们可以使用clock函数获取当前CPU时间: ```c milliseconds = clock(); ``` 然后,我们可以将获取到的时间转换为double型数据: ```c double milliseconds_double = (double)milliseconds; ``` 最后,在屏幕上输出当前时间毫秒值: ```c printf("当前时间毫秒:%f\n", milliseconds_double); ``` 完整的代码如下所示: ```c #include <stdio.h> #include <time.h> int main() { clock_t milliseconds; milliseconds = clock(); double milliseconds_double = (double)milliseconds; printf("当前时间毫秒:%f\n", milliseconds_double); return 0; } ``` 当我们运行程序时,就会在屏幕上打印出当前时间毫秒值。需要注意的是,clock函数获取时间是程序执行开始到当前的CPU时间,而不是实际的当前时间。如果需要获取实际的当前时间,可以使用time函数结合time_t类型来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值