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

C# में DateTime.SpecifyKind() मेथड - DateTime का Kind गुण बदलें

C# में DateTime.SpecifyKind() मेथड एक नया DateTime ऑब्जेक्ट बनाता है जिसमें निर्दिष्ट DateTime के समान टिक्स होते हैं लेकिन निर्दिष्ट DateTimeKind मान के साथ नामित होता है (स्थानीय समय, UTC, या न तो)।

सिंटैक्स

public static DateTime SpecifyKind (DateTime d, DateTimeKind kind);
  • d: स्रोत DateTime
  • kind: DateTimeKind एन्यूमरेशन मान - Local, Utc, या Unspecified

DateTimeKind एन्यूमरेशन

मानविवरणउपयोग
Unspecifiedकोई समय क्षेत्र जानकारी नहीं (डिफ़ॉल्ट)सामान्य तिथि/समय, केवल तिथि
Utcसमन्वित सार्वभौमिक समयभंडारण, गणना, तुलना
Localस्थानीय सिस्टम समय क्षेत्रउपयोगकर्ता प्रदर्शन, स्थानीय सिस्टम API

उदाहरण 1: Local Kind निर्दिष्ट करना

using System; 
using System.Globalization; 

public class Demo 
{ 
    public static void Main() 
    { 
        DateTime d = new DateTime(2019, 10, 11, 11, 10, 42); 
        DateTime res = DateTime.SpecifyKind(d, DateTimeKind.Local); 
        Console.WriteLine("Kind = " + res.Kind); 
    } 
}

आउटपुट

Kind = Local

उदाहरण 2: Utc Kind निर्दिष्ट करना

using System; 

public class Demo 
{ 
    public static void Main() 
    { 
        DateTime d = new DateTime(2019, 11, 25, 10, 20, 35); 
        DateTime res = DateTime.SpecifyKind(d, DateTimeKind.Utc); 
        Console.WriteLine("Kind = " + res.Kind); 
    } 
}

आउटपुट

Kind = Utc

उदाहरण 3: व्यावहारिक उपयोग - पार्सिंग के बाद Kind सेट करना

using System; 
using System.Globalization; 

public class Demo
{
    public static void Main()
    {
        // स्ट्रिंग पार्सिंग से Unspecified Kind मिलता है
        string dateStr = "2023-12-25 10:30:00";
        DateTime parsed = DateTime.Parse(dateStr); // Kind = Unspecified
        
        Console.WriteLine("पार्सिंग के बाद Kind: " + parsed.Kind); // Unspecified
        
        // इसे UTC के रूप में व्याख्या करें
        DateTime asUtc = DateTime.SpecifyKind(parsed, DateTimeKind.Utc);
        Console.WriteLine("UTC के रूप में: " + asUtc); // Kind = Utc
        
        // इसे स्थानीय समय के रूप में व्याख्या करें
        DateTime asLocal = DateTime.SpecifyKind(parsed, DateTimeKind.Local);
        Console.WriteLine("स्थानीय के रूप में: " + asLocal); // Kind = Local
        
        // अब रूपांतरण काम करते हैं
        Console.WriteLine("UTC से स्थानीय: " + asUtc.ToLocalTime());
        Console.WriteLine("स्थानीय से UTC: " + asLocal.ToUniversalTime());
    }
}

महत्वपूर्ण: SpecifyKind समय परिवर्तित नहीं करता

DateTime original = new DateTime(2023, 1, 1, 12, 0, 0, DateTimeKind.Unspecified);
Console.WriteLine("मूल: " + original + " Kind: " + original.Kind);

DateTime asUtc = DateTime.SpecifyKind(original, DateTimeKind.Utc);
Console.WriteLine("SpecifyKind(Utc): " + asUtc + " Kind: " + asUtc.Kind);
// समय समान रहता है: 12:00, केवल Kind बदलता है

// वास्तविक रूपांतरण के लिए:
DateTime converted = original.ToUniversalTime(); // मानता है मूल स्थानीय है
// या
DateTime converted2 = TimeZoneInfo.ConvertTime(original, TimeZoneInfo.Local, TimeZoneInfo.Utc);

मुख्य बिंदु

  • टिक्स नहीं बदलता - केवल Kind मेटाडेटा बदलता है
  • नया DateTime ऑब्जेक्ट लौटाता है (मूल अपरिवर्तित रहता है)
  • पार्सिंग के बाद Kind सेट करने के लिए आवश्यक (पार्सर Unspecified लौटाता है)
  • ToLocalTime()/ToUniversalTime() रूपांतरण के लिए Kind सही होना चाहिए
  • सीरियलाइज़ेशन/डिसीरियलाइज़ेशन में Kind संरक्षित करने के लिए उपयोगी
  1. - C# में DateTime.AddYears() विधि

    C# में DateTime.AddYears() विधि का उपयोग इस इंस्टेंस के मान में निर्दिष्ट वर्षों की संख्या जोड़ने के लिए किया जाता है। यह एक नया DateTime लौटाता है। सिंटैक्स public DateTime AddYears (int yrs); यहां, yrs जोड़े जाने वाले वर्ष हैं। यदि आप वर्ष घटाना चाहते हैं, तो नकारात्मक मान का उपयोग करें। उदाहरण आइ

  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 जोड़े जाने वाले दिनों की संख्या है। घटाने के लिए, एक नक