কম্পিউটার টিউটোরিয়াল

C#-এ DateTime.FromFileTime() মেথড: উইন্ডোজ ফাইল টাইম থেকে লোকাল টাইম


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 নিক্ষিপ্ত হতে পারে।

  1. C#-এ DateTimeOffset.FromFileTime() পদ্ধতি

  2. C#-এ DateTime.AddYears() পদ্ধতি

  3. C#-এ DateTime.AddHours() মেথড

  4. C#-এ DateTime.AddDays() মেথড