Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में DateTime.ToBinary() मेथड - DateTime को 64-बिट बाइनरी में सीरियलाइज़ करें

C# में DateTime.ToBinary() मेथड वर्तमान DateTime ऑब्जेक्ट को 64-बिट बाइनरी मान में सीरियलाइज़ करता है जिसका उपयोग DateTime ऑब्जेक्ट को पुनर्निर्मित करने के लिए किया जा सकता है। वापसी मान एक 64-बिट साइन्ड इंटीजर है।

सिंटैक्स

public long ToBinary ();

उदाहरण 1: विशिष्ट तिथि

using System; 

public class Demo 
{ 
    public static void Main() 
    { 
        DateTime d = new DateTime(2019, 10, 10, 8, 10, 40); 
        Console.WriteLine("Date = {0}", d); 
        
        long res = d.ToBinary(); 
        Console.WriteLine("64-bit binary value : {0}", res); 
    } 
}

आउटपुट

Date = 10/10/2019 8:10:40 AM
64-bit binary value : 637062918400000000

उदाहरण 2: वर्तमान समय

using System; 

public class Demo 
{ 
    public static void Main() 
    { 
        DateTime d = DateTime.Now; 
        Console.WriteLine("Date = {0}", d); 
        
        long res = d.ToBinary(); 
        Console.WriteLine("64-bit binary value : {0}", res); 
    } 
}

आउटपुट

Date = 10/16/2019 8:15:56 AM
64-bit binary value : -8586303931293472296

नोट: नकारात्मक मान इंगित करता है कि Kind = Local है (साइन बिट सेट)

बाइनरी फॉर्मेट संरचना (64 बिट्स)

  • बिट्स 0-61 (62 बिट्स): Ticks - 1 जनवरी 0001 से 100-नैनोसेकंड अंतराल
  • बिट्स 62-63 (2 बिट्स): Kind फ्लैग
    • 00 = Unspecified
    • 01 = Utc
    • 10 = Local

राउंड-ट्रिप: ToBinary() → FromBinary()

using System;

public class Demo
{
    public static void Main()
    {
        // UTC समय - सुरक्षित राउंड-ट्रिप
        DateTime utc = new DateTime(2023, 6, 15, 12, 0, 0, DateTimeKind.Utc);
        long binary = utc.ToBinary();
        DateTime restored = DateTime.FromBinary(binary);
        
        Console.WriteLine("मूल UTC: " + utc);
        Console.WriteLine("पुनर्निर्मित: " + restored);
        Console.WriteLine("समान: " + (utc == restored)); // True
        
        // स्थानीय समय - समय क्षेत्र पर निर्भर
        DateTime local = new DateTime(2023, 6, 15, 12, 0, 0, DateTimeKind.Local);
        long binary2 = local.ToBinary();
        DateTime restored2 = DateTime.FromBinary(binary2);
        
        Console.WriteLine("\nमूल स्थानीय: " + local);
        Console.WriteLine("पुनर्निर्मित: " + restored2);
        Console.WriteLine("समान: " + (local == restored2)); // समान मशीन/समयक्षेत्र पर True
    }
}

सावधानियां

  • स्थानीय समय के लिए: डिसीरियलाइज़ेशन वर्तमान समय क्षेत्र का उपयोग करता है - अलग समय क्षेत्र में अलग परिणाम देगा
  • UTC के लिए: समय क्षेत्र स्वतंत्र, सुरक्षित राउंड-ट्रिप
  • Unspecified के लिए: कोई समय क्षेत्र रूपांतरण नहीं
  • क्रॉस-मशीन/क्रॉस-टाइमज़ोन सीरियलाइज़ेशन के लिए UTC या DateTimeOffset का उपयोग करें

उपयोग के मामले

  • कॉम्पैक्ट बाइनरी सीरियलाइज़ेशन (8 बाइट्स बनाम स्ट्रिंग के 20+ बाइट्स)
  • डेटाबेस भंडारण (BIGINT कॉलम)
  • नेटवर्क प्रोटोकॉल, मेमोरी-मैप्ड फाइलें
  • कैशिंग जहां स्थान महत्वपूर्ण है

संबंधित मेथड्स

  • DateTime.FromBinary() - बाइनरी से DateTime पुनर्निर्माण
  • DateTime.ToFileTime() / ToFileTimeUtc() - Windows फाइल समय फॉर्मेट
  • DateTimeOffset.ToBinary() - ऑफसेट जानकारी सहित (अधिक मजबूत)
  1. - C# में DateTime.AddHours() मेथड

    C# में DateTime.AddHours() मेथड का उपयोग इस इंस्टेंस के मान में निर्दिष्ट संख्या में घंटे जोड़ने के लिए किया जाता है। यह मेथड एक नया DateTime लौटाता है। सिंटैक्स निम्नलिखित सिंटैक्स है - public DateTime AddHours (double hrs); यहां, hrs जोड़े जाने वाले घंटों की संख्या है। मान घंटे घटाने के लिए नकारा

  1. - C# में DateTime.AddDays() मेथड

    C# में DateTime.AddDays() मेथड का उपयोग इस इंस्टेंस के मान में निर्दिष्ट संख्या में दिन जोड़ने के लिए किया जाता है। यह मेथड एक नया DateTime लौटाता है। सिंटैक्स निम्नलिखित सिंटैक्स है - public DateTime AddDays (double days); यहां, पैरामीटर days जोड़े जाने वाले दिनों की संख्या है। घटाने के लिए, एक नक

  1. - C# में DateTime.Add() मेथड

    C# में DateTime.Add() मेथड का उपयोग एक नया DateTime लौटाने के लिए किया जाता है जो इस इंस्टेंस के मान में निर्दिष्ट TimeSpan का मान जोड़ता है। सिंटैक्स निम्नलिखित सिंटैक्स है - public DateTime Add (TimeSpan val); यहां, Val एक सकारात्मक या नकारात्मक समय अंतराल है। उदाहरण आइए DateTime.Add() मेथड को ला