C #에서 올바른 타임 스탬프를 얻는 방법


146

내 응용 프로그램에서 유효한 타임 스탬프를 얻고 싶습니다.

public static String GetTimestamp(DateTime value)
{
    return value.ToString("yyyyMMddHHmmssffff");
}
//  ...later on in the code
String timeStamp = GetTimestamp(new DateTime());
Console.WriteLine(timeStamp);

산출:

000101010000000000

나는 다음과 같은 것을 원했다.

20140112180244

내가 뭘 잘못 했니?

답변:


192

실수 new DateTime()로 현재 날짜 및 시간 대신 00 : 00 : 00.000에 0001을 1 월 1 일로 반환하는을 사용 하고 있습니다. 현재 날짜와 시간을 얻는 올바른 구문은 DateTime.Now 이므로 다음을 변경하십시오.

String timeStamp = GetTimestamp(new DateTime());

이에:

String timeStamp = GetTimestamp(DateTime.Now);

다른 방법은 무엇입니까? 타임 스탬프에서 날짜 시간까지
DanielV 2016 년

2
@DanielV 여기를 참조하십시오 : 문자열을 DateTime으로 변환 .
ekad

2
double timestamp = 1498122000; DateTime fecha = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc).AddSeconds(timestamp);여기
DanielV

44
var Timestamp = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();

11
NET 4.6이 필요합니다.
jeromej

7
이것이 저에게 답이되었지만 저는 사용했습니다ToUnixTimeMilliseconds()
Yass

15
var timestamp = DateTime.Now.ToFileTime();

//output: 132260149842749745

이것은 별개의 거래를 개별화하는 대체 방법입니다. 유닉스 시간이 아니라 Windows 파일 시간입니다.

로부터 문서 :

A Windows file time is a 64-bit value that represents the number of 100- 
nanosecond intervals that have elapsed since 12:00 midnight, January 1, 1601 
A.D. (C.E.) Coordinated Universal Time (UTC).

2
코드 응답이 다른 코드보다 나은 이유에 대한 설명을 추가하면 다른 사용자가이 문제에 대한 솔루션을 사용해야하는 이유를 이해할 수 있습니다. 설명이 없으면 코드 만 답변이 도움이되지 않습니다.
Brian Tompsett-汤 莱恩

3
캐시를 무효화하는 타임 스탬프 스타일을 쉽게 얻을 수 있도록 도와줍니다. +1
Adavo

2
Int32 unixTimestamp = (Int32)(TIME.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;

"TIME"은 유닉스 타임 스탬프를 얻고 자하는 DateTime 객체입니다.


1

대한 UTC :

string unixTimestamp = Convert.ToString((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);

로컬 시스템의 경우 :

string unixTimestamp = Convert.ToString((int)DateTime.Now.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.