C〓〓操作タイムスタンプ
2211 ワード
1.タイムスタンプとは?
まず、JavaScriptとUnixのタイムスタンプの違いを明確にします.
JavaScriptタイムスタンプ:グリニッジ時間1970年01月01日00時00秒(北京時間1970年01月01日08時00秒)から現在までの総ミリ秒数を指します.
Unixタイムスタンプ:グリニッジ時間1970年01月01日00時00秒(北京時間1970年01月01日08時00秒)から現在までの総秒数です.
JavaScriptタイムスタンプは総ミリ秒数、Unixタイムスタンプは総秒数と見られます.
例えば同じです 2016/11/03 12:30、JavaScriptタイムスタンプに変換します. 147814740000;Unixタイムスタンプに変換します. 1478147400
2. JavaScriptタイムスタンプ相互変換
2.1 C铉DateTimeをJavaScriptタイムスタンプに変換する
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0)); //
DateTime localNow = DateTime.Now;
long timeStamp = (long)((localNow - startTime).Ticks / 10000); //
または: DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0)); //
DateTime localNow = DateTime.Now;
long timeStamp = (long)((localNow - startTime).TotalMilliseconds); //
2.2 JavaScriptタイムスタンプをC〓DateTimeに変換するlong jsTimeStamp = 1478169023479;
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); //
DateTime dt = startTime.AddMilliseconds(jsTimeStamp);
System.Console.WriteLine(dt.ToString("yyyy/MM/dd HH:mm:ss:ffff"));
NET CoreでTimeZoneを使ってクライアント時間をサーバーローカル時間に変更しましたが、コンパイルのヒントが期限切れになりました.
私たちのプロジェクトが国際化したら、タイムゾーンの問題を解決しなければなりません.
NET Coreの前に、クライアント時間を以下のコードでサービスタイムに変換できます.
DateTime serverTime = TimeZone.CurrentTimeZone.ToLocalTime(clientTime);
NET Coreでは、TimeZone類はすでに期限が切れているとマークされていますが、どのように期限が切れていないAPIを使ってタイムゾーンの切り替えをすればいいですか?DateTime startTime = TimeZoneInfo.ConvertTime(new System.DateTime(1970, 1, 1), TimeZoneInfo.Utc,TimeZoneInfo.Local); //
以下の通りです//
DateTime startTime = TimeZoneInfo.ConvertTime(new System.DateTime(1970, 1, 1), TimeZoneInfo.Utc,TimeZoneInfo.Local); //
long timeStamp = (long)(DateTime.Now - startTime).TotalMilliseconds; //
System.Console.WriteLine(timeStamp);
詳細:
C xiはどうやって今日の零時の時間を取りますか?
C〓時間帯文字列を日付に変換し、その日の時点で判断する.
C葃ローカル時間フォーマット、UTC時間フォーマット、GMT時間フォーマット処理