タイムスタンプは実際には、現在時刻から 1970 年 1 月 1 日の 0:00:00:00 から計算したい時刻までの秒数またはミリ秒数です (北京時間に換算すると 1970 年 1 月 1 日の 8:00:00:00)。
一般的に言えば、使用するタイムスタンプは秒単位で 10 桁、ミリ秒単位で 13 桁です。
1. 時刻と第 2 タイムスタンプ間の変換
1. 時刻を 2 番目のタイムスタンプに変換します。
DateTime time = DateTime.Now;
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));//当地时区
TimeSpan ts = time - startTime;
var timestamp = Convert.ToInt64(ts.TotalSeconds);
Console.WriteLine(timestamp);
2. 2 番目のタイムスタンプを時刻に変換します
long timestamp=1629160713;
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));//当地时区
var time = startTime.AddSeconds(timestamp);
2. 時刻とミリ秒のタイムスタンプ間の変換
1.時刻をミリ秒のタイムスタンプに変換します。
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
var timestamp= Convert.ToInt64(ts2.TotalMilliseconds);
Console.WriteLine(timestamp);
2. ミリ秒のタイムスタンプを時間に変換します
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));//当地时区
var time = startTime.AddMilliseconds(cc);
注:UtcNow
標準タイムゾーンを取得する方法とTimeZone.CurrentTimeZone.ToLocalTime
ローカルタイムゾーンを取得する方法があるため、時差を取得する方法は 2 つあります。
//当地时区
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
TimeSpan ts = DateTime.Now - startTime;
//标准时区
TimeSpan ts2 = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);