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中文網其他相關文章!