1.当前时间转13位时间戳
/// <summary>
/// 标准时区的时间 13位时间戳
/// </summary>
/// <returns></returns>
public static long GetTimestampMilliseconds()
{
//ToUniversalTime()转换为标准时区的时间,去掉的话直接就用北京时间
TimeSpan ts = DateTime.UtcNow.ToUniversalTime() - new DateTime(1970, 1, 1);
return (long)ts.TotalMilliseconds; //精确到毫秒
//return (long)ts.TotalSeconds;//获取10位
}
2.时间戳转格式时间
public static string unixTimeToTime(string timeStamp, string format = "yyyyMMddHHmmss")
{
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
long lTime;
if (timeStamp.Length.Equals(10))//判断是10位
{
lTime = long.Parse(timeStamp + "0000000");
}
else
{
lTime = long.Parse(timeStamp + "0000");//13位
}
TimeSpan toNow = new TimeSpan(lTime);
DateTime daTime = dtStart.Add(toNow);
string time = daTime.ToString(format);//转为了string格式
Debug.Log(time);
return time;
}
3.格式时间转时间戳
// 时间转时间戳
public static string DateTimeToStamp(string formattime)
{
DateTime now = System.DateTime.Parse(formattime);
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 当地时区
long timeStamp = (long)(now - startTime).TotalMilliseconds; // 相差毫秒数
Debug.Log("\n 当前 时间戳为:" + timeStamp);
return timeStamp.ToString();
}