1. C# 获取当前时间戳
获取当前的毫秒时间戳
/// <summary>
/// 获取当前的毫秒时间戳
/// </summary>
/// <returns></returns>
public static long Timestamp()
{
long ts = ConvertDateTimeToInt(DateTime.Now);
return ts;
}
/// <summary>
/// 将c# DateTime时间格式转换为Unix时间戳格式
/// </summary>
/// <param name="time">时间</param>
/// <returns>long</returns>
public static long ConvertDateTimeToInt(System.DateTime time)
{
//System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
//long t = (time.Ticks - startTime.Ticks) / 10000; //除10000调整为13位
long t = (time.Ticks - 621356256000000000) / 10000;
return t;
}
2. 时间戳转换 16 进制 byte 数组
2.1 首先将时间戳转换 16 进制字符串
// 获取时间戳
long timeStamp = Public.Timestamp() / 1000;// 精确到秒
string str = timeStamp.ToString("X4"); // 10进制转换16进制,并且少于4位补全0
2.2 16 进制时间戳字符串转换成 16 进制 byte 数组
/// <summary>
/// 16进制字符串转换成16进制byte数组
/// </summary>
/// <param name="hexString"></param>
/// <returns></returns>
public static byte[] strToHexByte(string hexString)
{
hexString = hexString.Replace(":", "");
if ((hexString.Length % 2) != 0)
hexString += " ";
byte[] returnBytes = new byte[hexString.Length / 2];
for (int i = 0; i < returnBytes.Length; i++)
returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
return returnBytes;
}
3. 最后使用
// 获取时间戳
long timeStamp = Public.Timestamp() / 1000; // 精确到秒
string str = timeStamp.ToString("X4"); // 10进制转换16进制,并且少于4位补全0
byte[] b = Public.strToHexByte(str);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。