曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4943|回复: 0
打印 上一主题 下一主题

获得 UNIX 时间戳毫秒

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2013-11-5 23:08:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
可以从 date 命令里获取 UNIX 时间戳,使用 %s 可以获得自 1970-01-01 00:00:00 以来的秒数;使用 %N 可以获得执行当前命令并显示结果时所经过的纳秒。因此,要获得 UNIX 时间戳的毫秒,那么可以执行下面的命令:
  1. UTIME=`date +%s%N`;
  2. echo`expr $UTIME/ 1000000`
复制代码
如果是 javascript ,那么使用 Date 对象的 getTime() 方法同样可以获得该毫秒时间戳。

还从网上照抄了段 C++ 程序:
[C++] 纯文本查看 复制代码
#include <time.h>
#include <sys/time.h>
#include <iostream>
#include <stdio.h>
using namespace std;

long long GetMillSec();

int main()
{
	long long nBegin = 0;
	long long nEnd = 0;

	nBegin = GetMillSec();

	struct timeval tv; 
	gettimeofday(&tv,NULL);

	cout << "sec: " << tv.tv_sec << endl;		//秒
	cout << "u_sec: " << tv.tv_usec << endl;	//微秒
	cout << "m_sec: " << tv.tv_usec / 1000 << endl;

	/*time_t nSec = time((time_t*)NULL);
	cout << "time1:" << nSec << endl;

	time_t t2 = 0;
	time_t t3 = 0;
	t2 = time(&t3);

	cout << "time2:" << t2 << endl;
	cout << "time3:" << t3 << endl;*/

	for (int i = 0; i < 1000; i++)
	{
		int nSub = 0;
		nSub += i;
		int n = atoi("11111");

		cout << nSub << endl;
	}
	
	nEnd = GetMillSec();

	long long nSub = nEnd - nBegin;

	cout << "begin sec:" << nBegin << endl;
	cout << "end sec:" << nEnd << endl;
	cout << "sub Mill Sec1:" << nSub << endl;
	cout << "sub Mill Sec2:" << nEnd - nBegin << endl;

	return 0;
}

long long GetMillSec()
{
	long long nMillSec = 0;

	struct timeval tv; 
	gettimeofday(&tv,NULL);

	nMillSec = (long long)tv.tv_sec * 1000;
	cout << "nMIllSec1 = " << nMillSec << endl;

	nMillSec += tv.tv_usec / 1000;
	cout << "nMIllSec2 = " << nMillSec << endl;

	return nMillSec;
}


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-4-29 11:27 , Processed in 0.078412 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表