C#-এ DateTime.FromFileTime() মেথডটি নির্দিষ্ট উইন্ডোজ ফাইল টাইমকে সমতুল্য লোকাল টাইম (Local Time) এ রূপান্তর করে। FromFileTimeUtc()-এর সাথে পার্থক্য হলো এটি সিস্টেমের টাইমজোন অনুযায়ী লোকাল টাইম ফেরত দেয়।
সিনট্যাক্স (Syntax)
public static DateTime FromFileTime(long fileTime);
এখানে fileTime প্যারামিটারটি হলো উইন্ডোজ ফাইল টাইম, যা টিক্স (১০০-ন্যানোসেকেন্ড) আকারে প্রকাশ করা হয়।
উদাহরণ ১: নির্দিষ্ট ফাইল টাইম থেকে লোকাল টাইম
using System;
public class Demo
{
public static void Main()
{
DateTime d1 = DateTime.FromFileTime(100000000000);
System.Console.WriteLine("DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
}
}
আউটপুট
DateTime = 01 January 1601, 02:46:40
নোট: আউটপুট আপনার সিস্টেমের টাইমজোন অনুযায়ী ভিন্ন হতে পারে। উপরের আউটপুট UTC+10 টাইমজোনের জন্য।
উদাহরণ ২: শূন্য (Zero) ফাইল টাইম
using System;
public class Demo
{
public static void Main()
{
DateTime d1 = DateTime.FromFileTime(0);
System.Console.WriteLine("DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
}
}
আউটপুট
DateTime = 01 January 1601, 12:00:00
শূন্য ফাইল টাইম মানে ১৬০১ সালের ১ জানুয়ারি ০০:০০:০০ UTC। লোকাল টাইমজোন অনুযায়ী এটি ভিন্ন সময় দেখাবে।
FromFileTime() vs FromFileTimeUtc()
| ফিচার | FromFileTime() | FromFileTimeUtc() |
|---|---|---|
| ফেরত দেওয়া টাইম | লোকাল টাইম (সিস্টেম টাইমজোন অনুযায়ী) | UTC টাইম |
| টাইমজোন কনভার্সন | হ্যাঁ, অটোমেটিক | না |
| ব্যবহার ক্ষেত্র | ইউজার ইন্টারফেসে দেখানোর জন্য | সার্ভার-সাইড স্টোরেজ/তুলনার জন্য |
প্রয়োগিক উদাহরণ: ফাইল প্রোপার্টি পড়া
using System;
using System.IO;
public class FileTimeDemo
{
public static void Main()
{
string filePath = @"C:\Windows\System32\notepad.exe";
if (File.Exists(filePath))
{
// ফাইল তৈরির সময় (লোকাল টাইমে)
DateTime creationLocal = File.GetCreationTime(filePath);
Console.WriteLine("Creation Time (Local): " + creationLocal);
// ফাইল টাইম থেকে লোকাল টাইম
long fileTime = File.GetCreationTimeUtc(filePath).ToFileTimeUtc();
DateTime fromFileTime = DateTime.FromFileTime(fileTime);
Console.WriteLine("From FileTime (Local): " + fromFileTime);
}
}
}
সতর্কতা: ফাইল টাইম ১৬০১ সালের আগের বা অতিরিক্ত বড় মান হলে ArgumentOutOfRangeException নিক্ষিপ্ত হতে পারে।