C# は北京時間とタイムスタンプを変換するためのヘルパー クラスを実現します。

C# は、北京時間をタイムスタンプに変換し、タイムスタンプを北京時間に変換するために使用されます。タイムスタンプの長さはそれぞれ 10 ビットと 13 ビットです。


 

using System;

namespace TimeConverter
{
    public static class TimestampConversionHelper
    {
        private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

        /// <summary>
        /// 将北京时间转换为时间戳(10位)
        /// </summary>
        /// <param name="beijingTime">北京时间</param>
        /// <returns>时间戳(10位)</returns>
        public static long ToUnixTimeSeconds(DateTime beijingTime)
        {
            var utcTime = beijingTime.ToUniversalTime();
            var elapsedTime = utcTime - UnixEpoch;
            return (long)elapsedTime.TotalSeconds;
        }

        /// <summary>
        /// 将北京时间转换为时间戳(13位)
        /// </summary>
        /// <param name="beijingTime">北京时间</param>
        /// <returns>时间戳(13位)</returns>
        public static long ToUnixTimeMilliseconds(DateTime beijingTime)
        {
            var utcTime = beijingTime.ToUniversalTime();
            var elapsedTime = utcTime - UnixEpoch;
            return (long)elapsedTime.TotalMilliseconds;
        }

        /// <summary>
        /// 将时间戳(10位)转换为北京时间
        /// </summary>
        /// <param name="unixTimeSeconds">时间戳(10位)</param>
        /// <returns>北京时间</returns>
        public static DateTime FromUnixTimeSeconds(long unixTimeSeconds)
        {
            var utcTime = UnixEpoch.AddSeconds(unixTimeSeconds);
            return utcTime.ToLocalTime();
        }

        /// <summary>
        /// 将时间戳(13位)转换为北京时间
        /// </summary>
        /// <param name="unixTimeMilliseconds">时间戳(13位)</param>
        /// <returns>北京时间</returns>
        public static DateTime FromUnixTimeMilliseconds(long unixTimeMilliseconds)
        {
            var utcTime = UnixEpoch.AddMilliseconds(unixTimeMilliseconds);
            return utcTime.ToLocalTime();
        }
    }
}

このヘルパー クラスには 4 つのメソッドが含まれています。

  • ToUnixTimeSeconds: 北京時間をタイムスタンプ (10 桁) に変換します。
  • ToUnixTimeMilliseconds: 北京時間をタイムスタンプ (13 桁) に変換します。
  • FromUnixTimeSeconds: タイムスタンプ (10 桁) を北京時間に変換します。
  • FromUnixTimeMilliseconds: タイムスタンプ (13 桁) を北京時間に変換します。

これらのメソッドは静的メソッドであるため、クラス名を通じて直接呼び出すことができます。

呼び出し例:

Console.WriteLine("现在时间:"+DateTime.Now);
Console.WriteLine(TimestampConversionHelper.ToUnixTimeSeconds(DateTime.Now));
            Console.WriteLine(TimestampConversionHelper.ToUnixTimeMilliseconds(DateTime.Now));
Console.WriteLine(TimestampConversionHelper.FromUnixTimeSeconds(1686900730));
            Console.WriteLine(TimestampConversionHelper.FromUnixTimeMilliseconds(1686900730123));

出力には次のことが示されます。

現在の時刻: 2023-06-16 15:50:27
1686901827
1686901827147
2023-06-16 15:32:10
2023-06-16 15:32:10

DateTimeこのヘルパー クラスでは、時間と間隔の計算に複数のクラスを使用しましたTimeSpanまた、UnixEpochUnix エポック時間 (1970 年 1 月 1 日 00:00:00 UTC) を表すフィールドも定義します。このフィールドを使用してタイムスタンプを計算します。

ToUnixTimeSecondsandメソッドではToUnixTimeMilliseconds、まず北京時間を協定世界時 (UTC) 時間に変換し、次に Unix エポック時間からの経過時間間隔を計算し、それを秒またはミリ秒に変換します。最後に、longタイムスタンプを型として返します。

FromUnixTimeSecondsandメソッドではFromUnixTimeMilliseconds、まずUnixEpochフィールドとタイムスタンプを使用して UTC 時間を計算し、それを現地時間 (北京時間) に変換します。最後に、DateTime北京時間を型として返します。

このヘルパー クラスは北京時間とタイムスタンプを簡単に変換できるため、C# アプリケーションでタイムスタンプを簡単に処理できます。

上記のコンテンツは、あなた自身の学習と共有を記録するために使用され、共有することでテクノロジーがさらに進歩します。

テクノロジーは思想の自由、独立した思考、弁証法的分析、論理的思考、人間の自由の革新から生まれ、人間の生活のさまざまな利便性を提供するものであり、テクノロジーを利用してイデオロギーの分裂や包囲を生み出して愚かさを生み出すものではありません。テクノロジーには良いものと悪いものがあります。善良な人がテクノロジーを使用するのは良いことであり、悪い人がテクノロジーを使用するのは悪いです。おすすめの本:ジョージ・オーウェルの『1984年』、複数の翻訳がありますので、好きなものを選んでください;プラトンの『ユートピア』、ハイエクの『農奴への道』(香港版)もあります)(香港版の方が良いです)本土版よりも翻訳されており、英語が得意な場合はオリジナルの英語版が最適です)がオンラインストアで販売されています。良い本を読むこと、ほとんどの人が読んだことのない本や教室で読んだことのない本を読むこと、この土地では入手できない知識を読むことによって、ある種の思索的な思考と知恵が増し、そうして初めて、私たちは狭い思考の洞窟から抜け出すことができます。そして偏見!

プラトンは、傑作『ユートピア』の第 7 巻で洞窟理論を書きました。幼少の頃から洞窟に閉じ込められて暮らしていた人々が、外の光の下で洞窟の中を覗くと黒い影が見え、黒い影が見えたというものです。外を見ると、明るい海と空、見れば見るほど明るい!

寛容な人は自信があり、より多様な考え方を持っています。寛容な文化は人を強くします。自信があればあるほど、寛容であればあるほど、人は強くなります。

おすすめ

転載: blog.csdn.net/m0_58015531/article/details/131248764