जवाबों:
नहीं वहाँ नहीं है। DateTimeउस समय के कुछ बिंदुओं का प्रतिनिधित्व करता है जो एक तिथि और एक समय से बना होता है। हालाँकि, आप Dateसंपत्ति के माध्यम से दिनांक भाग को पुनः प्राप्त कर सकते हैं (जो DateTimeसमय निर्धारित के साथ एक और है 00:00:00)।
और आप के माध्यम से व्यक्तिगत तिथि गुण प्राप्त कर सकते हैं Day, Monthऔर Year।
मैंने समय के लिए एक सरल दिनांक संरचना बनाई है जब आपको समय भाग, टाइमज़ोन, स्थानीय बनाम utc, आदि के बारे में चिंता किए बिना एक सरल तिथि की आवश्यकता होती है।
Date today = Date.Today;
Date yesterday = Date.Today.AddDays(-1);
Date independenceDay = Date.Parse("2013-07-04");
independenceDay.ToLongString(); // "Thursday, July 4, 2013"
independenceDay.ToShortString(); // "7/4/2013"
independenceDay.ToString(); // "7/4/2013"
independenceDay.ToString("s"); // "2013-07-04"
int july = independenceDay.Month; // 7
दुर्भाग्य से, .Net BCL में नहीं। तिथियों को आम तौर पर मध्यरात्रि को निर्धारित समय के साथ डेटटाइम ऑब्जेक्ट के रूप में दर्शाया जाता है।
जैसा कि आप अनुमान लगा सकते हैं, इसका मतलब है कि आपके पास सभी परिचर टाइमज़ोन मुद्दे हैं, भले ही आप जिस दिनांक ऑब्जेक्ट के लिए चाहते हैं, वह पूरी तरह से nozone हैंडलिंग है।
dateकिसी भी चीज के लिए उपयोग करना एक बुरा विचार है जब तक कि आप 100% सुनिश्चित न हों कि आपका ऐप केवल एक समय क्षेत्र में काम करेगा। datetimeयदि आप अपने सर्वर के टाइमज़ोन को कभी भी परिवर्तित करते हैं, तो आप सभी चीज़ों को सहेजना चाहते हैं, जिसमें सबसे गंभीर रूप से, समय-समय पर बुरे सपने से बचने का आसान तरीका भी शामिल है। अगर आप कभी भी गलत समय-सीमा के संदर्भ में लिखना शुरू कर देते हैं, तो आप उसे नहीं Datetimeबचा dateसकते हैं, और इसे ठीक करने के लिए मुश्किल से मुश्किल हो जाएगा date।
एक आवरण वर्ग बनाएँ। कुछ इस तरह:
public class Date:IEquatable<Date>,IEquatable<DateTime>
{
public Date(DateTime date)
{
value = date.Date;
}
public bool Equals(Date other)
{
return other != null && value.Equals(other.value);
}
public bool Equals(DateTime other)
{
return value.Equals(other);
}
public override string ToString()
{
return value.ToString();
}
public static implicit operator DateTime(Date date)
{
return date.value;
}
public static explicit operator Date(DateTime dateTime)
{
return new Date(dateTime);
}
private DateTime value;
}
और जो भी valueआप चाहते हैं उसे उजागर करें ।
DateTimeKind.Unspecifiedकि जब धारावाहिक यह परिवर्तित किए बिना deserialized हो जाता है तो (समय-क्षेत्रों में विभिन्न पर आधारित तिथि बदल सकते हैं)।
DateTimeKind.Utc। इसे सेट न करेंDateTimeKind.Unspecified क्योंकि यह गारंटी देगा कि यह एक सम्मिलित समय क्षेत्र ऑफसेट के साथ क्रमबद्ध / deserialized हो जाता है! कैलेंडर ज़ोन समय क्षेत्र की परवाह किए बिना समान है, इसलिए सिस्टम को इसे समायोजित न करने दें।
दिनांक प्रकार VB.NET द्वारा उपयोग की जाने वाली DateTime प्रकार का केवल एक अन्य नाम है (जैसे int पूर्णांक हो जाता है)। इन दोनों प्रकारों में एक दिनांक गुण होता है जो आपको 00:00:00 तक निर्धारित समय भाग के साथ वस्तु लौटाता है।
DateTime ऑब्जेक्ट में एक गुण होता है जो मान के केवल दिनांक भाग को लौटाता है।
public static void Main()
{
System.DateTime _Now = DateAndTime.Now;
Console.WriteLine("The Date and Time is " + _Now);
//will return the date and time
Console.WriteLine("The Date Only is " + _Now.Date);
//will return only the date
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
DateTime0:00:00
कोई Dateडेटाटाइप नहीं है ।
हालाँकि आप DateTime.Dateकेवल दिनांक प्राप्त करने के लिए उपयोग कर सकते हैं ।
ईजी
DateTime date = DateTime.Now.Date;
DateTime.Now.Dateके रूप में ही है DateTime.Today। वहाँ एक है DateTime.UtcNowकि सार्वभौमिक समय (UTC) के रूप में की तारीख के समय मान देता है, लेकिन कोई यूटीसी बराबर विधि या आज के लिए संपत्ति है, DateTimeKind.UtcNow.Dateउपयुक्त अभिव्यक्ति है।
आप DateTime को वापस कर सकते हैं जहाँ समय भाग 00:00:00 है और इसे अनदेखा करें। तारीखों को टाइमस्टैम्प पूर्णांक के रूप में नियंत्रित किया जाता है, इसलिए यह तारीख को उस समय के साथ संयोजित करने के लिए समझ में आता है जो पूर्णांक में मौजूद है।
इसके लिए, आपको तारीख का उपयोग करने की आवश्यकता है, लेकिन समय के मूल्य को अनदेखा करें।
आमतौर पर एक तारीख के समय के साथ एक डेटटाइम होगा 00:00:00
DateTimeप्रकार एक है .Dateसंपत्ति जो रिटर्न DateTimeके ऊपर के रूप में समय भी मान सेट।
public class AsOfdates
{
public string DisplayDate { get; set; }
private DateTime TheDate;
public DateTime DateValue
{
get
{
return TheDate.Date;
}
set
{
TheDate = value;
}
}
}
आप निम्न में से एक कोशिश कर सकते हैं:
DateTime.Now.ToLongDateString();
DateTime.Now.ToShortDateString();
लेकिन बीसीएल में कोई "दिनांक" प्रकार नहीं है।