C# में DateTimeOffset.EqualsExact() मेथड यह निर्धारित करता है कि वर्तमान DateTimeOffset ऑब्जेक्ट समान समय दर्शाता है और समान ऑफसेट है या नहीं, किसी निर्दिष्ट DateTimeOffset ऑब्जेक्ट के साथ।
सिंटैक्स
public bool EqualsExact (DateTimeOffset val);
पैरामीटर val तुलना के लिए ऑब्जेक्ट है।
Equals() बनाम EqualsExact()
| मेथड | तुलना | उदाहरण |
|---|---|---|
| Equals() | UTC समय तुल्यता (ऑफसेट अनदेखा) | 2023-01-01 12:00 +05:00 == 2023-01-01 07:00 +00:00 → True |
| EqualsExact() | सटीक समय + सटीक ऑफसेट | 2023-01-01 12:00 +05:00 == 2023-01-01 07:00 +00:00 → False |
उदाहरण 1: समान समय और ऑफसेट
using System;
public class Demo
{
public static void Main()
{
DateTimeOffset dateTimeOffset1 = new DateTimeOffset(2019, 11, 09, 5, 30, 10, new TimeSpan(-5, 0, 0));
DateTimeOffset dateTimeOffset2 = new DateTimeOffset(2019, 11, 09, 5, 30, 10, new TimeSpan(-5, 0, 0));
Console.WriteLine("DateTimeOffset1 = {0}", dateTimeOffset1);
Console.WriteLine("DateTimeOffset2 = {0}", dateTimeOffset2);
bool res = dateTimeOffset1.EqualsExact(dateTimeOffset2);
if (res)
Console.Write("DateTimeOffset1 = DateTimeOffset2");
else
Console.Write("DateTimeOffset1 and DateTimeOffset2 are different");
}
}
आउटपुट
DateTimeOffset1 = 11/9/2019 5:30:10 AM -05:00 DateTimeOffset2 = 11/9/2019 5:30:10 AM -05:00 DateTimeOffset1 = DateTimeOffset2
उदाहरण 2: अलग समय/ऑफसेट
using System;
public class Demo
{
public static void Main()
{
DateTimeOffset dateTimeOffset1 = new DateTimeOffset(2019, 09, 09, 5, 30, 10, new TimeSpan(-5, 0, 0));
DateTimeOffset dateTimeOffset2 = new DateTimeOffset(2019, 11, 09, 9, 20, 20, new TimeSpan(-5, 0, 0));
Console.WriteLine("DateTimeOffset1 = {0}", dateTimeOffset1);
Console.WriteLine("DateTimeOffset2 = {0}", dateTimeOffset2);
bool res = dateTimeOffset1.EqualsExact(dateTimeOffset2);
if (res)
Console.Write("DateTimeOffset1 = DateTimeOffset2");
else
Console.Write("DateTimeOffset1 and DateTimeOffset2 are different");
}
}
आउटपुट
DateTimeOffset1 = 9/9/2019 5:30:10 AM -05:00 DateTimeOffset2 = 11/9/2019 9:20:20 AM -05:00 DateTimeOffset1 and DateTimeOffset2 are different
उदाहरण 3: समान UTC समय, अलग ऑफसेट
using System;
public class Demo
{
public static void Main()
{
// समान क्षण, अलग ऑफसेट
DateTimeOffset dto1 = new DateTimeOffset(2023, 1, 1, 12, 0, 0, TimeSpan.Zero); // UTC
DateTimeOffset dto2 = new DateTimeOffset(2023, 1, 1, 17, 30, 0, new TimeSpan(5, 30, 0)); // IST (UTC+5:30)
Console.WriteLine("dto1: " + dto1); // 1/1/2023 12:00:00 PM +00:00
Console.WriteLine("dto2: " + dto2); // 1/1/2023 5:30:00 PM +05:30
Console.WriteLine("Equals(): " + dto1.Equals(dto2)); // True (समान क्षण)
Console.WriteLine("EqualsExact(): " + dto1.EqualsExact(dto2)); // False (अलग ऑफसेट)
}
}
मुख्य बिंदु
- EqualsExact() दोनों DateTime और Offset गुणों की तुलना करता है
- Equals() केवल UTC समय की तुलना करता है (ऑफसेट अनदेखा)
- जब ऑफसेट संरक्षण महत्वपूर्ण हो (लॉगिंग, ऑडिट, समय क्षेत्र-विशिष्ट डेटा)
- IEquatable<DateTimeOffset> लागू करता है लेकिन EqualsExact अलग मेथड है
- ऑपरेटर
==Equals() व्यवहार का उपयोग करता है (UTC तुल्यता)
उपयोग के मामले
- लॉग एंट्री तुलना जहां मूल समय क्षेत्र मायने रखता है
- निर्धारित कार्य जहां स्थानीय समय ऑफसेट संरक्षित रहना चाहिए
- डेटाबेस टाइमस्टैम्प तुलना जहां ऑफसेट कॉलम अलग से संग्रहीत है
- टेस्टिंग: अपेक्षित DateTimeOffset मान की सटीक पुष्टि