关于c#:如何在.NET中获取Unix时间戳?

How to get Unix time stamp in .NET?

本问题已经有最佳答案,请猛点这里访问。

我在C代码中遇到了以下函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Byte[] GetUNIXTimeStamp(DateTime dtVal)
{
  if (m_bytTimeStamp == null) m_bytTimeStamp = new Byte[14];

  Byte[] bytVals = BitConverter.GetBytes((UInt16)dtVal.Day);
  m_bytTimeStamp[0] = bytVals[0];
  m_bytTimeStamp[1] = bytVals[1];
  bytVals = BitConverter.GetBytes((UInt16)dtVal.Month);
  m_bytTimeStamp[2] = bytVals[0];
  m_bytTimeStamp[3] = bytVals[1];
  bytVals = BitConverter.GetBytes((UInt16)dtVal.Year);
  m_bytTimeStamp[4] = bytVals[0];
  m_bytTimeStamp[5] = bytVals[1];
  bytVals = BitConverter.GetBytes((UInt16)dtVal.Hour);
  m_bytTimeStamp[6] = bytVals[0];
  m_bytTimeStamp[7] = bytVals[1];
  bytVals = BitConverter.GetBytes((UInt16)dtVal.Minute);
  m_bytTimeStamp[8] = bytVals[0];
  m_bytTimeStamp[9] = bytVals[1];
  bytVals = BitConverter.GetBytes((UInt16)dtVal.Second);
  m_bytTimeStamp[10] = bytVals[0];
  m_bytTimeStamp[11] = bytVals[1];
  bytVals = BitConverter.GetBytes((UInt16)dtVal.Millisecond);
  m_bytTimeStamp[12] = bytVals[0];
  m_bytTimeStamp[13] = bytVals[1];

  return m_bytTimeStamp;
}

…想知道是否有最短最干净的方法来达到同样的效果?


您可以使用以下内容:

1
long CurrentTimestamp = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds;