1970 년 이후 현재 타임 스탬프를 밀리 초 단위로 얻는 방법
Java에서는 System.currentTimeMillis()
epoch 시간 이후 현재 시간 소인을 밀리 초 단위로 가져 오는 데 사용할 수 있습니다.
현재 시간과 1970 년 1 월 1 일 자정 (UTC)의 차이 (밀리 초)입니다.
C ++에서 같은 것을 얻는 방법?
현재 이것을 사용하여 현재 타임 스탬프를 얻습니다.
struct timeval tp;
gettimeofday(&tp, NULL);
long int ms = tp.tv_sec * 1000 + tp.tv_usec / 1000; //get current timestamp in milliseconds
cout << ms << endl;
이게 옳은가 아닌가?
C ++ 11 라이브러리에 액세스 할 수있는 경우 라이브러리를 확인하십시오 std::chrono
. Unix Epoch 이후 다음과 같이 밀리 초를 얻는 데 사용할 수 있습니다.
#include <chrono>
// ...
using namespace std::chrono;
milliseconds ms = duration_cast< milliseconds >(
system_clock::now().time_since_epoch()
);
사용하다 <sys/time.h>
struct timeval tp;
gettimeofday(&tp, NULL);
long int ms = tp.tv_sec * 1000 + tp.tv_usec / 1000;
이 답변은 C ++을 사용 하는 Oz 와 비슷합니다. 오즈에서<chrono>
얻지 못했습니다. 그러나...
이 페이지 하단 에서 원본 스 니펫을 집어 들고 완전한 콘솔 앱으로 약간 수정했습니다. 나는이 릴 '을 사용하는 것을 좋아합니다. VB 또는 덜 현대적이고 독자 친화적 인 코드를 사용하지 않고 실제 밀리 초 단위로 시대를 맞이하기 위해 Windows에서 많은 스크립트를 작성하고 신뢰할 수있는 도구가 필요한 경우 환상적입니다.
#include <chrono>
#include <iostream>
int main() {
unsigned __int64 now = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count();
std::cout << now << std::endl;
return 0;
}
gettimeofday를 사용하면 long long으로 캐스트해야합니다. 그렇지 않으면 에포크 이후 오버 플로우가 발생하여 실제 밀리 초가되지 않습니다. long int msint = tp.tv_sec * 1000 + tp.tv_usec / 1000; 에포크 이후 8 일이 지난 767990892와 같은 숫자를 제공합니다. ;-).
int main(int argc, char* argv[])
{
struct timeval tp;
gettimeofday(&tp, NULL);
long long mslong = (long long) tp.tv_sec * 1000L + tp.tv_usec / 1000; //get current timestamp in milliseconds
std::cout << mslong << std::endl;
}
C ++ 11부터 다음을 사용할 수 있습니다 std::chrono
.
- 현재 시스템 시간을 얻습니다.
std::chrono::system_clock::now()
- 신기원부터 시간을 가지십시오 :
.time_since_epoch()
- 기본 단위를 밀리 초로 변환하십시오.
duration_cast<milliseconds>(d)
- 오버플로를 피하기 위해
std::chrono::milliseconds
정수로 변환uint64_t
#include <chrono>
#include <cstdint>
#include <iostream>
uint64_t timeSinceEpochMillisec() {
using namespace std::chrono;
return duration_cast<milliseconds>(system_clock::now().time_since_epoch()).count();
}
int main() {
std::cout << timeSinceEpochMillisec() << std::endl;
return 0;
}
기능을 포함 <ctime>
하고 사용하십시오 time
.
'Programming' 카테고리의 다른 글
메모장에서 파이썬 파일을 실행하는 방법 ++? (0) | 2020.07.28 |
---|---|
레일즈 : redirect_to : : error, 그러나 flash [: error] 비어 있음 (0) | 2020.07.28 |
MySQL 두 개 이상의 주어진 값 중에서 최소 / 최대 선택 (0) | 2020.07.28 |
ASP.NET 세션 열기 / 활성화 (0) | 2020.07.28 |
iPhone 앱의 Facebook 액세스 토큰 서버 측 유효성 검사 (0) | 2020.07.28 |