खोज…


DateTime.Add (TimeSpan)

// Calculate what day of the week is 36 days from this instant.
System.DateTime today = System.DateTime.Now;
System.TimeSpan duration = new System.TimeSpan(36, 0, 0, 0);
System.DateTime answer = today.Add(duration);
System.Console.WriteLine("{0:dddd}", answer);

DateTime.AddDays (डबल)

किसी डेटटाइम ऑब्जेक्ट में दिन जोड़ें।

DateTime today = DateTime.Now;
DateTime answer = today.AddDays(36);
Console.WriteLine("Today: {0:dddd}", today);
Console.WriteLine("36 days from today: {0:dddd}", answer);

आप नकारात्मक मान गुजरने वाले दिनों को घटा सकते हैं:

DateTime today = DateTime.Now;
DateTime answer = today.AddDays(-3);
Console.WriteLine("Today: {0:dddd}", today);
Console.WriteLine("-3 days from today: {0:dddd}", answer);

DateTime.AddHours (डबल)

double[] hours = {.08333, .16667, .25, .33333, .5, .66667, 1, 2, 
                        29, 30, 31, 90, 365};
DateTime dateValue = new DateTime(2009, 3, 1, 12, 0, 0);

foreach (double hour in hours)
  Console.WriteLine("{0} + {1} hour(s) = {2}", dateValue, hour, 
                           dateValue.AddHours(hour));

DateTime.AddMilliseconds (डबल)

string dateFormat = "MM/dd/yyyy hh:mm:ss.fffffff"; 
DateTime date1 = new DateTime(2010, 9, 8, 16, 0, 0);
Console.WriteLine("Original date: {0} ({1:N0} ticks)\n",
                  date1.ToString(dateFormat), date1.Ticks);

DateTime date2 = date1.AddMilliseconds(1);
Console.WriteLine("Second date:   {0} ({1:N0} ticks)",
                  date2.ToString(dateFormat), date2.Ticks);
Console.WriteLine("Difference between dates: {0} ({1:N0} ticks)\n",
                  date2 - date1, date2.Ticks - date1.Ticks);                        

DateTime date3 = date1.AddMilliseconds(1.5);
Console.WriteLine("Third date:    {0} ({1:N0} ticks)",
                  date3.ToString(dateFormat), date3.Ticks);
Console.WriteLine("Difference between dates: {0} ({1:N0} ticks)",
                  date3 - date1, date3.Ticks - date1.Ticks);   

DateTime.Compare (दिनांक समय t1, दिनांक समय t2)

DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;

if (result < 0)
    relationship = "is earlier than";
else if (result == 0)
    relationship = "is the same time as";         
else relationship = "is later than";

Console.WriteLine("{0} {1} {2}", date1, relationship, date2);

DateTime.DaysInMonth (Int32, Int32)

const int July = 7;
const int Feb = 2;

int daysInJuly = System.DateTime.DaysInMonth(2001, July);
Console.WriteLine(daysInJuly);

// daysInFeb gets 28 because the year 1998 was not a leap year.
int daysInFeb = System.DateTime.DaysInMonth(1998, Feb);
Console.WriteLine(daysInFeb);

// daysInFebLeap gets 29 because the year 1996 was a leap year.
int daysInFebLeap = System.DateTime.DaysInMonth(1996, Feb);
Console.WriteLine(daysInFebLeap);

DateTime.AddYears (Int32)

दिनांक समय ऑब्जेक्ट पर वर्ष जोड़ें:

DateTime baseDate = new DateTime(2000, 2, 29);
Console.WriteLine("Base Date: {0:d}\n", baseDate);

// Show dates of previous fifteen years.
for (int ctr = -1; ctr >= -15; ctr--)
   Console.WriteLine("{0,2} year(s) ago:{1:d}", 
                      Math.Abs(ctr), baseDate.AddYears(ctr));

Console.WriteLine();

// Show dates of next fifteen years.
for (int ctr = 1; ctr <= 15; ctr++)
   Console.WriteLine("{0,2} year(s) from now: {1:d}", 
                     ctr, baseDate.AddYears(ctr));

DateTime के साथ काम करते समय शुद्ध कार्य की चेतावनी

विकिपीडिया वर्तमान में एक शुद्ध कार्य को निम्न प्रकार से परिभाषित करता है:

  1. फ़ंक्शन हमेशा समान तर्क मान (ओं) को दिए गए समान परिणाम मान का मूल्यांकन करता है। फ़ंक्शन परिणाम मान किसी भी छिपी जानकारी या स्थिति पर निर्भर नहीं हो सकता है जो प्रोग्राम निष्पादन की कार्यवाही के दौरान या प्रोग्राम के विभिन्न निष्पादन के बीच बदल सकता है, और न ही यह I / O उपकरणों से किसी भी बाहरी इनपुट पर निर्भर हो सकता है।
  2. परिणाम का मूल्यांकन किसी भी शब्दानुभवनीय दुष्प्रभाव या आउटपुट का कारण नहीं बनता है, जैसे कि उत्परिवर्तनीय वस्तुओं का उत्परिवर्तन या I / O उपकरणों के आउटपुट

एक डेवलपर के रूप में आपको शुद्ध तरीकों के बारे में पता होना चाहिए और आप कई क्षेत्रों में इन पर ठोकर खाएंगे। एक मैंने देखा है कि कई जूनियर डेवलपर्स डेटाइम क्लास विधियों के साथ काम कर रहे हैं। इनमें से बहुत से शुद्ध हैं और यदि आप इन से अनजान हैं तो आप एक सुपरराइज के लिए जा सकते हैं। एक उदाहरण:

        DateTime sample = new DateTime(2016, 12, 25);
        sample.AddDays(1);
        Console.WriteLine(sample.ToShortDateString());

एक से ऊपर के उदाहरण को देखते हुए उम्मीद की जा सकती है कि रिजल्ट के कंसोल में '26 / 12/2016 'लिखा होगा, लेकिन वास्तव में आप उसी तिथि को समाप्त होते हैं। इसका कारण यह है कि AddDays एक शुद्ध विधि है और मूल तिथि को प्रभावित नहीं करती है। अपेक्षित आउटपुट प्राप्त करने के लिए आपको AddDays कॉल को निम्न में बदलना होगा:

        sample = sample.AddDays(1);

DateTime.Parse (स्ट्रिंग)

// Converts the string representation of a date and time to its DateTime equivalent

var dateTime = DateTime.Parse("14:23 22 Jul 2016");

Console.WriteLine(dateTime.ToString());

DateTime.TryParse (स्ट्रिंग, तिथि समय)

// Converts the specified string representation of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded

string[] dateTimeStrings = new []{
    "14:23 22 Jul 2016",
    "99:23 2x Jul 2016",
    "22/7/2016 14:23:00"
};

foreach(var dateTimeString in dateTimeStrings){

    DateTime dateTime;
    
    bool wasParsed = DateTime.TryParse(dateTimeString, out dateTime);
    
    string result = dateTimeString +
        (wasParsed 
            ? $"was parsed to {dateTime}" 
            : "can't be parsed to DateTime");
            
    Console.WriteLine(result);
}

संस्कृति की जानकारी के साथ Parse और TryParse

आप विभिन्न संस्कृतियों (भाषाओं) से डेटटम्स को पार्स करते समय इसका उपयोग करना चाह सकते हैं, उदाहरण के लिए डच तारीख।

DateTime dateResult;
var dutchDateString = "31 oktober 1999 04:20";
var dutchCulture = CultureInfo.CreateSpecificCulture("nl-NL");
DateTime.TryParse(dutchDateString, dutchCulture, styles, out dateResult);
// output {31/10/1999 04:20:00}

पार्स का उदाहरण:

DateTime.Parse(dutchDateString, dutchCulture)
// output {31/10/1999 04:20:00}

आरंभिक के रूप में डेटटाइम फॉर लूप

// This iterates through a range between two DateTimes 
// with the given iterator (any of the Add methods) 

DateTime start = new DateTime(2016, 01, 01);
DateTime until = new DateTime(2016, 02, 01);

// NOTICE: As the add methods return a new DateTime you have
// to overwrite dt in the iterator like dt = dt.Add()
for (DateTime dt = start; dt < until; dt = dt.AddDays(1))
{
    Console.WriteLine("Added {0} days. Resulting DateTime: {1}", 
                      (dt - start).Days, dt.ToString());
}

टाइमस्पैन पर TimeSpan उसी तरह काम करता है।

डेटाइम टर्निंग, टोर्होर्टडेटस्ट्रिंग, टोलडोंगटैस्ट्रिंग और टोस्ट्रिंग स्वरूपित

using System;
                    
public class Program
{
    public static void Main()
    {
        var date = new DateTime(2016,12,31);
        
        Console.WriteLine(date.ToString());        //Outputs: 12/31/2016 12:00:00 AM
        Console.WriteLine(date.ToShortDateString()); //Outputs: 12/31/2016
        Console.WriteLine(date.ToLongDateString()); //Outputs: Saturday, December 31, 2016
        Console.WriteLine(date.ToString("dd/MM/yyyy"));    //Outputs: 31/12/2016
    }
}

आज की तारीख

वर्तमान दिनांक प्राप्त करने के लिए आप DateTime.Today प्रॉपर्टी का उपयोग करें। यह आज की तारीख के साथ DateTime ऑब्जेक्ट लौटाता है। जब यह तब परिवर्तित हो जाता है .ToString() यह आपके सिस्टम के इलाके में डिफ़ॉल्ट रूप से किया जाता है।

उदाहरण के लिए:

Console.WriteLine(DateTime.Today);

कंसोल के लिए अपने स्थानीय प्रारूप में, आज की तारीख लिखता है।

डेटटाइम फॉर्मिंग

मानक दिनांक समय प्रारूपण

DateTimeFormatInfo सरल तिथि और समय तैयार करने के लिए विशेषकों का एक सेट निर्दिष्ट करता है। हर विनिर्देश एक विशेष DateTimeFormatInfo प्रारूप पैटर्न के अनुरूप है।

//Create datetime
DateTime dt = new DateTime(2016,08,01,18,50,23,230);

var t = String.Format("{0:t}", dt); // "6:50 PM"                             ShortTime
var d = String.Format("{0:d}", dt); // "8/1/2016"                            ShortDate
var T = String.Format("{0:T}", dt); // "6:50:23 PM"                          LongTime
var D = String.Format("{0:D}", dt); // "Monday, August 1, 2016"              LongDate
var f = String.Format("{0:f}", dt); // "Monday, August 1, 2016 6:50 PM"      LongDate+ShortTime
var F = String.Format("{0:F}", dt); // "Monday, August 1, 2016 6:50:23 PM"   FullDateTime
var g = String.Format("{0:g}", dt); // "8/1/2016 6:50 PM"                    ShortDate+ShortTime
var G = String.Format("{0:G}", dt); // "8/1/2016 6:50:23 PM"                 ShortDate+LongTime
var m = String.Format("{0:m}", dt); // "August 1"                            MonthDay
var y = String.Format("{0:y}", dt); // "August 2016"                         YearMonth
var r = String.Format("{0:r}", dt); // "SMon, 01 Aug 2016 18:50:23 GMT"      RFC1123
var s = String.Format("{0:s}", dt); // "2016-08-01T18:50:23"                 SortableDateTime
var u = String.Format("{0:u}", dt); // "2016-08-01 18:50:23Z"                UniversalSortableDateTime

कस्टम डेटाइम स्वरूपण

निम्नलिखित कस्टम प्रारूप विनिर्देशक हैं:

  • y (वर्ष)
  • M (महीने)
  • d (दिन)
  • h (घंटा 12)
  • H (24 घंटे)
  • m (मिनट)
  • s (दूसरा)
  • f (दूसरा अंश)
  • F (दूसरा अंश, अनुगामी शून्य को छंटनी की जाती है)
  • t (पीएम या एएम)
  • z (समय क्षेत्र)।
var year =       String.Format("{0:y yy yyy yyyy}", dt); // "16 16 2016 2016"  year
var month =      String.Format("{0:M MM MMM MMMM}", dt); // "8 08 Aug August"  month
var day =        String.Format("{0:d dd ddd dddd}", dt); // "1 01 Mon Monday"  day
var hour =       String.Format("{0:h hh H HH}",     dt); // "6 06 18 18"       hour 12/24
var minute =     String.Format("{0:m mm}",          dt); // "50 50"            minute
var secound =    String.Format("{0:s ss}",          dt); // "23 23"            second
var fraction =   String.Format("{0:f ff fff ffff}", dt); // "2 23 230 2300"    sec.fraction
var fraction2 =  String.Format("{0:F FF FFF FFFF}", dt); // "2 23 23 23"       without zeroes
var period =     String.Format("{0:t tt}",          dt); // "P PM"             A.M. or P.M.
var zone =       String.Format("{0:z zz zzz}",      dt); // "+0 +00 +00:00"    time zone

आप डेट सेपरेटर / (स्लैश) और टाइम सेपरेटर : (कोलन) भी इस्तेमाल कर सकते हैं।

कोड उदाहरण के लिए

अधिक जानकारी के लिए MSDN

DateTime.ParseExact (स्ट्रिंग, स्ट्रिंग, IFormatProvider)

निर्दिष्ट प्रारूप और संस्कृति-विशिष्ट प्रारूप जानकारी का उपयोग करके किसी दिनांक और समय के निर्दिष्ट स्ट्रिंग प्रतिनिधित्व को उसके दिनांक समय के समतुल्य में परिवर्तित करता है। स्ट्रिंग प्रतिनिधित्व का प्रारूप निर्दिष्ट प्रारूप से बिल्कुल मेल खाना चाहिए।

किसी विशिष्ट प्रारूप स्ट्रिंग को समतुल्य DateTime में कनवर्ट करें

मान लें कि हमारे पास एक संस्कृति-विशिष्ट DateTime स्ट्रिंग 08-07-2016 11:30:12 PM रूप में MM-dd-yyyy hh:mm:ss tt प्रारूप है और हम इसे समतुल्य DateTime ऑब्जेक्ट में कनवर्ट करना चाहते हैं

string str = "08-07-2016 11:30:12 PM";
DateTime date = DateTime.ParseExact(str, "MM-dd-yyyy hh:mm:ss tt", CultureInfo.CurrentCulture);

किसी विशिष्ट संस्कृति प्रारूप के बिना DateTime ऑब्जेक्ट को दिनांक समय स्ट्रिंग में कनवर्ट करें

मान लीजिए कि हमारे पास dd-MM-yy hh:mm:ss tt फॉर्मेट में डेटटाइम स्ट्रिंग है और हम चाहते हैं कि यह किसी विशिष्ट संस्कृति की जानकारी के बिना समतुल्य DateTime ऑब्जेक्ट में कनवर्ट हो।

string str = "17-06-16 11:30:12 PM";
DateTime date = DateTime.ParseExact(str, "dd-MM-yy hh:mm:ss tt", CultureInfo.InvariantCulture);

अलग-अलग प्रारूप वाले किसी भी विशिष्ट संस्कृति प्रारूप के बिना दिनांक समय स्ट्रिंग को समतुल्य तिथि वस्तु में बदलें

मान लें कि हमारे पास एक दिनांक स्ट्रिंग है, उदाहरण जैसे '23 -12-2016 'या '12 / 23/2016' और हम इसे किसी विशिष्ट संस्कृति की जानकारी के बिना समतुल्य DateTime ऑब्जेक्ट में बदलना चाहते हैं

   string date =  '23-12-2016' or date = 12/23/2016';
   string[] formats = new string[] {"dd-MM-yyyy","MM/dd/yyyy"}; // even can add more possible formats.
   DateTime date = DateTime.ParseExact(date,formats, CultureInfo.InvariantCulture,DateTimeStyles.None);

नोट: System.Globalization को संस्कृतिइन्फो क्लास के लिए जोड़ा जाना चाहिए

DateTime.TryParseExact (स्ट्रिंग, स्ट्रिंग, IFormatProvider, DateTimeStyles, DateTime)

निर्दिष्ट प्रारूप, संस्कृति-विशिष्ट प्रारूप जानकारी, और शैली का उपयोग करके दिनांक और समय के निर्दिष्ट स्ट्रिंग प्रतिनिधित्व को इसके समतुल्य समतुल्य में परिवर्तित करता है। स्ट्रिंग प्रतिनिधित्व का प्रारूप निर्दिष्ट प्रारूप से बिल्कुल मेल खाना चाहिए। विधि एक मान लौटाती है जो इंगित करता है कि रूपांतरण सफल हुआ या नहीं।

उदाहरण के लिए

CultureInfo enUS = new CultureInfo("en-US");
string dateString;
System.DateTime dateValue;

बिना स्टाइल के झंडे के साथ पार्स डेट।

dateString = " 5/01/2009 8:30 AM";
if (DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.None, out dateValue))
{
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
}
else
{
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}


// Allow a leading space in the date string.
if(DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite, out dateValue))
{
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
else
{
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}

एम और एमएम के साथ कस्टम प्रारूपों का उपयोग करें।

dateString = "5/01/2009 09:00";
if(DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None, out dateValue))
{
    Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
}
else
{
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}

// Allow a leading space in the date string.
if(DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, DateTimeStyles.None, out dateValue))
{
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
}
else
{
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}

समय क्षेत्र की जानकारी के साथ एक स्ट्रिंग पार्स करें।

dateString = "05/01/2009 01:30:42 PM -05:00";
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.None, out dateValue))
{
    Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
}
else
{
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}


// Allow a leading space in the date string.
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.AdjustToUniversal, out dateValue))
{
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
}
else
{
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}

UTC का पुनरुत्पादन करने वाला एक स्ट्रिंग पार्स करें।

dateString = "2008-06-11T16:11:20.0904778Z";
if(DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue))
{
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
}
else
{
  Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}

if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out dateValue))
{
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind);
}
else
{
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}

आउटपुट

' 5/01/2009 8:30 AM' is not in an acceptable format.
Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
'5/01/2009 09:00' is not in an acceptable format.
Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow