C#
 Computer >> コンピューター >  >> プログラミング >> C#

【C#】指定したWindowsファイル時刻を現地時刻に変換する方法


指定されたWindowsファイル時刻を、それと等価な現地時刻(ローカルタイム)に変換するには、DateTimeOffset.FromFileTime()メソッドを使用します。このメソッドは、Windowsファイル時刻(1601年1月1日午前0時を基準とした経過時間を100ナノ秒単位で表した値)を受け取り、対応するDateTimeOffsetオブジェクトを返します。

using System;
public class Demo {
   public static void Main() {
      DateTimeOffset offset = DateTimeOffset.FromFileTime(0);
      Console.WriteLine("DateTimeOffset = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ",offset);
   }
}

出力

上記のコードを実行すると、次のような結果が表示されます。

DateTimeOffset = 01 January 1601, 12:00:00

ここではファイル時刻として「0」を渡しているため、Windowsファイル時刻の基準日である1601年1月1日の12:00:00が出力されています。

別の例

続いて、別の値を渡した場合の例を見てみましょう。

using System;
public class Demo {
   public static void Main() {
      DateTimeOffset offset = DateTimeOffset.FromFileTime(200000000);
      Console.WriteLine("DateTimeOffset = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ",offset);
   }
}

出力

上記のコードを実行すると、次のような結果が表示されます。

DateTimeOffset = 01 January 1601, 12:00:20

今回は「200000000」(20秒に相当)を渡しているため、基準時刻から20秒後の「12:00:20」という時刻が出力されました。このように、FromFileTime()メソッドに渡すティック数によって、任意のWindowsファイル時刻を現地時刻へ簡単に変換できます。

  1. 「指定されたリソース名が画像ファイルに見つかりません(0x80070716)」エラーの解決方法

    ファイル回復(File Recovery)のオプションメニューにアクセスしようとした際に、「指定されたリソース名が画像ファイルに見つかりません(0x80070716)」というエラーが発生するという報告が多数寄せられています。この問題は主にWindows 7環境で発生しており、多くのユーザーが「ファイル履歴(File History)」タブを開こうとしたタイミングでエラーが表示されると報告しています。「0x80070716」エラーが発生する原因とは?さまざまなユーザーの報告や、実際に問題の解決・回避に成功した修復方法を調査した結果、このエラーメッセージを引き起こすことが判明しているシナリオがいく

  2. Windowsで「指定されたデバイス、パス、またはファイルにアクセスできません」エラーを修正する方法【解決済み】

    プログラムのインストール、更新、起動を試みた際に、「Windows は指定されたデバイス、パス、またはファイルにアクセスできません。アイテムにアクセスする適切なアクセス許可がない可能性があります。」というエラーメッセージが表示されることがあります。このエラーは、スタートメニュー、ダウンロードフォルダーやピクチャフォルダー、さらにはコントロールパネルにアクセスしようとしたときにも発生することがあります。主な原因はアクセス許可の問題と考えられますが、システムに必要なファイルやフォルダーが欠落しているケースも考えられます。 また、システムファイルがウイルスやマルウェアに感染している場合にも、同様の