首頁 >後端開發 >C++ >如何在Unix時間戳和DateTime對象之間轉換?

如何在Unix時間戳和DateTime對象之間轉換?

DDD
DDD原創
2025-02-01 23:46:10306瀏覽

How to Convert Between Unix Timestamps and DateTime Objects?

Unix 時間戳與 DateTime 對象轉換詳解

許多應用場景都需要在 Unix 時間戳和 DateTime 對象之間進行轉換。 Unix 時間戳表示自 Unix 紀元(1970 年 1 月 1 日 00:00:00 UTC)以來的秒數,而 DateTime 對象則以更直觀的方式表示時間,包含具體的日期和時間成分。

從 Unix 時間戳轉換為 DateTime 對象

將 Unix 時間戳轉換為 DateTime 對象,可以使用以下方法:

<code class="language-csharp">public static DateTime UnixTimeStampToDateTime(double unixTimeStamp)
{
    // Unix 时间戳是自纪元以来的秒数
    DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
    dateTime = dateTime.AddSeconds(unixTimeStamp).ToLocalTime();
    return dateTime;
}</code>

對於 Java 開發者,由於時間戳以毫秒為單位,轉換方法有所不同:

<code class="language-java">public static DateTime JavaTimeStampToDateTime(long javaTimeStamp) {
    // Java 时间戳是自纪元以来的毫秒数
    DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
    dateTime = dateTime.plusMillis((long) javaTimeStamp).toLocalTime();
    return dateTime;
}</code>

從 DateTime 對象轉換為 Unix 時間戳

反向轉換可以使用以下代碼片段:

<code class="language-csharp">public double DateTimeToUnixTimeStamp(DateTime dateTime)
{
    // Unix 时间戳是自纪元以来的秒数
    DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
    TimeSpan span = (dateTime - epoch).ToLocalTime();
    return span.TotalSeconds;
}</code>

對於 Java,將 DateTime 對象轉換為 Java 時間戳(毫秒)的方法如下:

<code class="language-java">public long DateTimeToJavaTimeStamp(DateTime dateTime) {
    // Java 时间戳是自纪元以来的毫秒数
    DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
    return (dateTime.getMillis() - epoch.getMillis());
}</code>

這些方法提供了高效可靠的 Unix 時間戳和 DateTime 對象之間的轉換方式,滿足各種應用場景中時間表示方式不同的需求。

以上是如何在Unix時間戳和DateTime對象之間轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn