C # DateTime को "YYYYMMDDHHMMSS" प्रारूप


621

मैं एक C # DateTime को "YYYYMMDDHHMMSS" प्रारूप में बदलना चाहता हूं। लेकिन मुझे यह प्रारूप प्राप्त करने के लिए बिल्ट इन मेथड नहीं मिला है? कोई टिप्पणी?

जवाबों:


1060
DateTime.Now.ToString("yyyyMMddHHmmss"); // case sensitive

35
क्या यह सिर्फ मुझे लगता है कि यह महीनों के लिए बिग एम के लिए पागल है और फिर घंटों के लिए बड़ा एच है?
निक

69
एम = मिनट / एम = महीने, एच ​​= १२ घंटे, एच ​​= २४ घंटे। मुझे संदेह है कि किसी ने समय के साथ शुरू किया और कहा कि एचएमएस = घंटे मिनट सेकंड, फिर एच 24 घंटे का हो गया और फिर वे तारीख पर चले गए और अद्वितीय पत्रों से बाहर भाग गए, इसलिए मामले के साथ चले गए। बस उन चीजों में से एक।
डगलस एंडरसन

2
आप उस पार्स का उपयोग कैसे करेंगे DateTime.Parse()?
बिग मनी

12
@BigMoney आप DateTime.ParseExact: var अब = DateTime.ParseExact (stringVersion, "YYYYMMDDHHMMSS", CultureInfo.InvariantCulture) का उपयोग करेंगे;
जिम लैंब

4
@BigMoney जब पार्सिंग कर रहा है, तो formatयह मामला संवेदनशील भी है, अर्थातDateTime.ParseExact(stringValue, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
निगेल टच

577

इस साइट के महान उदाहरण हैं इसे देखें

// create date time 2008-03-09 16:05:07.123
DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);

String.Format("{0:y yy yyy yyyy}",      dt);  // "8 08 008 2008"   year
String.Format("{0:M MM MMM MMMM}",      dt);  // "3 03 Mar March"  month
String.Format("{0:d dd ddd dddd}",      dt);  // "9 09 Sun Sunday" day
String.Format("{0:h hh H HH}",          dt);  // "4 04 16 16"      hour 12/24
String.Format("{0:m mm}",               dt);  // "5 05"            minute
String.Format("{0:s ss}",               dt);  // "7 07"            second
String.Format("{0:f ff fff ffff}",      dt);  // "1 12 123 1230"   sec.fraction
String.Format("{0:F FF FFF FFFF}",      dt);  // "1 12 123 123"    without zeroes
String.Format("{0:t tt}",               dt);  // "P PM"            A.M. or P.M.
String.Format("{0:z zz zzz}",           dt);  // "-6 -06 -06:00"   time zone

// month/day numbers without/with leading zeroes
String.Format("{0:M/d/yyyy}",           dt);  // "3/9/2008"
String.Format("{0:MM/dd/yyyy}",         dt);  // "03/09/2008"

// day/month names
String.Format("{0:ddd, MMM d, yyyy}",   dt);  // "Sun, Mar 9, 2008"
String.Format("{0:dddd, MMMM d, yyyy}", dt);  // "Sunday, March 9, 2008"

// two/four digit year
String.Format("{0:MM/dd/yy}",           dt);  // "03/09/08"
String.Format("{0:MM/dd/yyyy}",         dt);  // "03/09/2008"

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

String.Format("{0:t}", dt);  // "4:05 PM"                           ShortTime
String.Format("{0:d}", dt);  // "3/9/2008"                          ShortDate
String.Format("{0:T}", dt);  // "4:05:07 PM"                        LongTime
String.Format("{0:D}", dt);  // "Sunday, March 09, 2008"            LongDate
String.Format("{0:f}", dt);  // "Sunday, March 09, 2008 4:05 PM"    LongDate+ShortTime
String.Format("{0:F}", dt);  // "Sunday, March 09, 2008 4:05:07 PM" FullDateTime
String.Format("{0:g}", dt);  // "3/9/2008 4:05 PM"                  ShortDate+ShortTime
String.Format("{0:G}", dt);  // "3/9/2008 4:05:07 PM"               ShortDate+LongTime
String.Format("{0:m}", dt);  // "March 09"                          MonthDay
String.Format("{0:y}", dt);  // "March, 2008"                       YearMonth
String.Format("{0:r}", dt);  // "Sun, 09 Mar 2008 16:05:07 GMT"     RFC1123
String.Format("{0:s}", dt);  // "2008-03-09T16:05:07"               SortableDateTime
String.Format("{0:u}", dt);  // "2008-03-09 16:05:07Z"              UniversalSortableDateTime

/*
Specifier   DateTimeFormatInfo property     Pattern value (for en-US culture)
    t           ShortTimePattern                    h:mm tt
    d           ShortDatePattern                    M/d/yyyy
    T           LongTimePattern                     h:mm:ss tt
    D           LongDatePattern                     dddd, MMMM dd, yyyy
    f           (combination of D and t)            dddd, MMMM dd, yyyy h:mm tt
    F           FullDateTimePattern                 dddd, MMMM dd, yyyy h:mm:ss tt
    g           (combination of d and t)            M/d/yyyy h:mm tt
    G           (combination of d and T)            M/d/yyyy h:mm:ss tt
    m, M        MonthDayPattern                     MMMM dd
    y, Y        YearMonthPattern                    MMMM, yyyy
    r, R        RFC1123Pattern                      ddd, dd MMM yyyy HH':'mm':'ss 'GMT' (*)
    s           SortableDateTi­mePattern             yyyy'-'MM'-'dd'T'HH':'mm':'ss (*)
    u           UniversalSorta­bleDateTimePat­tern    yyyy'-'MM'-'dd HH':'mm':'ss'Z' (*)
                                                    (*) = culture independent   
*/

सी # 6 स्ट्रिंग प्रक्षेप प्रारूप का उपयोग कर अद्यतन करें

// create date time 2008-03-09 16:05:07.123
DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);

$"{dt:y yy yyy yyyy}";  // "8 08 008 2008"   year
$"{dt:M MM MMM MMMM}";  // "3 03 Mar March"  month
$"{dt:d dd ddd dddd}";  // "9 09 Sun Sunday" day
$"{dt:h hh H HH}";      // "4 04 16 16"      hour 12/24
$"{dt:m mm}";           // "5 05"            minute
$"{dt:s ss}";           // "7 07"            second
$"{dt:f ff fff ffff}";  // "1 12 123 1230"   sec.fraction
$"{dt:F FF FFF FFFF}";  // "1 12 123 123"    without zeroes
$"{dt:t tt}";           // "P PM"            A.M. or P.M.
$"{dt:z zz zzz}";       // "-6 -06 -06:00"   time zone

// month/day numbers without/with leading zeroes
$"{dt:M/d/yyyy}";    // "3/9/2008"
$"{dt:MM/dd/yyyy}";  // "03/09/2008"

// day/month names
$"{dt:ddd, MMM d, yyyy}";    // "Sun, Mar 9, 2008"
$"{dt:dddd, MMMM d, yyyy}";  // "Sunday, March 9, 2008"

// two/four digit year
$"{dt:MM/dd/yy}";    // "03/09/08"
$"{dt:MM/dd/yyyy}";  // "03/09/2008"

मैं इस प्रारूप को पसंद करूंगा: yyyyMMddHHmm[+-]ZZzzजहां [+ -] ZZzz हिस्सा समयक्षेत्र है (GMT तिथि से जोड़े जाने या
घटने

zzzहै -06: 00 , मैं चाहूंगा-0600
किकेनेट

2
@Kiquenet आपने .Replace(":", "") $"{dt:yyyyMMddHHmmzzz}".Replace(":", "")लगभग एक काम के रूप में कोशिश की है
Nerdroid

एक विकल्प है dt.ToString("...");, जहां "..."ऊपर के प्रारूप के साथ प्रतिस्थापित किया जाता है, जैसे। "yyyy-MM-dd"
टूलमेकरसैट

247

आपने व्यावहारिक रूप से प्रारूप स्वयं लिखा है।

yourdate.ToString("yyyyMMddHHmmss")

  • MM = दो अंकों का महीना
  • मिमी = दो अंकों का मिनट
  • एचएच = दो अंकों का घंटा, 24 घंटे की घड़ी
  • hh = दो अंकों का घंटा, 12 घंटे की घड़ी

बाकी सब कुछ आत्म-व्याख्यात्मक होना चाहिए।


92
"fff" मिलीसेकंड देगा ताकि आप "yyyyMMddHHmmssfff" का उपयोग करके मिलिसकंड्स को एक स्ट्रिंग दे सकें।
जेफ विडमर

समयक्षेत्र के लिए कौन सा हिस्सा है (जीएमटी तिथि से जोड़े जाने या घटने में घंटों की संख्या)?
किकेनेट

129

आपको बस महीनों (एमएम) और मिनटों (मिमी) के बीच सावधान रहना होगा:

DateTime dt = DateTime.Now; // Or whatever
string s = dt.ToString("yyyyMMddHHmmss");

(यह भी ध्यान दें कि HH 24 घंटे की घड़ी है, जबकि hh 12 घंटे की घड़ी होगी, जो आमतौर पर am / pm डिज़ाइनर के लिए t या tt के संयोजन में होती है।)

यदि आप इसे समग्र प्रारूप स्ट्रिंग के भाग के रूप में करना चाहते हैं, तो आप इसका उपयोग करेंगे:

string s = string.Format("The date/time is: {0:yyyyMMddHHmmss}", dt);

अधिक जानकारी के लिए, कस्टम तिथि और समय प्रारूपों पर MSDN पृष्ठ देखें ।


क्या यह संभव है now.ToString("yyyyMMdd_HHmmss"):? मेरा मतलब है कि अन्य पात्रों के साथ तालमेल बनाना संभव है, सही?
डेनियल

1
@ दानिएलवी: हां, लेकिन मैं शाब्दिक पात्रों (एपोस्ट्रोफ के साथ) को उद्धृत करूंगा।
जॉन स्कीट

26

आप एक कस्टम प्रारूप स्ट्रिंग का उपयोग कर सकते हैं:

DateTime d = DateTime.Now;
string dateString = d.ToString("yyyyMMddHHmmss");

यदि आप 24 घंटे की घड़ी का समय नहीं चाहते हैं तो "HH" के लिए "hh" को स्थान दें।


21

यदि आप ReSharper का उपयोग करते हैं, तो ':' (चित्र देखें) की सहायता लें

IntelliSense


आपको ReSharper के साथ 2013 (और शायद पहले) के साथ समान मिलता है।
वाई हा ली

18
DateTime.Now.ToString("yyyyMMddHHmmss");

यदि आप बस इसे एक स्ट्रिंग के रूप में प्रदर्शित करना चाहते हैं


16

में .Net Standard 2आप स्वरूपित कर सकते हैं DateTimebelows तरह:

DateTime dt = DateTime.Now;
CultureInfo iv = CultureInfo.InvariantCulture;

// Default formats
// D - long date           Tuesday, 24 April 2018
// d - short date          04/24/2018
// F - full date long      Tuesday, 24 April 2018 06:30:00
// f - full date short     Tuesday, 24 April 2018 06:30
// G - general long        04/24/2018 06:30:00
// g - general short       04/24/2018 06:30
// U - universal full      Tuesday, 24 April 2018 06:30:00
// u - universal sortable  2018-04-24 06:30:00
// s - sortable            2018-04-24T06:30:00
// T - long time           06:30:00
// t - short time          06:30
// O - ISO 8601            2018-04-24T06:30:00.0000000
// R - RFC 1123            Tue, 24 Apr 2018 06:30:00 GMT           
// M - month               April 24
// Y - year month          2018 April
Console.WriteLine(dt.ToString("D", iv));

// Custom formats
// M/d/yy                  4/8/18
// MM/dd/yyyy              04/08/2018
// yy-MM-dd                08-04-18
// yy-MMM-dd ddd           08-Apr-18 Sun
// yyyy-M-d dddd           2018-4-8 Sunday
// yyyy MMMM dd            2018 April 08      
// h:mm:ss tt zzz          4:03:05 PM -03
// HH:m:s tt zzz           16:03:05 -03:00
// hh:mm:ss t z            04:03:05 P -03
// HH:mm:ss tt zz          16:03:05 PM -03      
Console.WriteLine(dt.ToString("M/d/yy", iv));


8

मुझे आश्चर्य है कि किसी के पास इसके लिए लिंक नहीं है। यहाँ दिशानिर्देशों का उपयोग करके कोई भी प्रारूप बनाया जा सकता है:

कस्टम दिनांक और समय प्रारूप स्ट्रिंग्स

अपने विशिष्ट उदाहरण के लिए (जैसा कि दूसरों ने संकेत दिया है) कुछ का उपयोग करें

my_format="yyyyMMddHHmmss";
DateTime.Now.ToString(my_format);

जहाँ my_format y, M, H, m, s, f, F और अधिक का कोई भी स्ट्रिंग संयोजन हो सकता है! लिंक देखें।


1
जॉन स्कीट ने अपने जवाब में उस लिंक को शामिल किया ( stackoverflow.com/a/3025377/12484 )।
जॉन श्नाइडर

5

DateTimeस्ट्रिंग के बजाय ऑब्जेक्ट के रूप में दिनांक प्राप्त करें । फिर आप इसे अपनी इच्छानुसार प्रारूपित कर सकते हैं।

  • MM / dd / yyyy 08/22/2006
  • dddd, dd MMMM yyyy मंगलवार, 22 अगस्त 2006
  • dddd, dd MMMM yyyy HH: मिमी मंगलवार, 22 अगस्त 2006 06:30
  • dddd, dd MMMM yyyy hh: mm tt मंगलवार, 22 अगस्त 2006 06:30 AM
  • dddd, dd MMMM yyyy H: मिमी मंगलवार, 22 अगस्त 2006 6:30
  • dddd, dd MMMM yyyy h: mm tt मंगलवार, 22 अगस्त 2006 6:30 पूर्वाह्न
  • dddd, dd MMMM yyyy HH: mm: ss मंगलवार, 22 अगस्त 2006 06:30:07
  • MM / dd / yyyy HH: मिमी 08/22/2006 06:30
  • MM / dd / yyyy hh: mm tt 08/22/2006 06:30 AM
  • MM / dd / yyyy H: मिमी 08/22/2006 6:30
  • MM / dd / yyyy h: mm tt 08/22/2006 6:30 पूर्वाह्न
  • MM / dd / yyyy HH: mm: ss 08/22/2006 06:30:07

अधिक पैटर्न के लिए यहां क्लिक करें



3

एक आसान तरीका, 'प्रकार से' और 'प्रकार' पर पूर्ण नियंत्रण, और केवल भविष्य की कास्टिंग के लिए इस कोड को याद रखने की आवश्यकता है

DateTime.ParseExact(InputDate, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy/MM/dd"));

2

यह कोई बड़ी बात नहीं है। आप बस इस तरह डाल सकते हैं

WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd-HH:mm:ss")}");

यहाँ बहाना मैंने $ का उपयोग किया जो स्ट्रिंग इंटरपोल के लिए है।


0

संभावना पतली है कि ऊपर दिए गए किसी भी उत्तर से आपकी समस्या हल नहीं होगी। बहरहाल, मैं अपने तरीके को साझा कर रहा हूं जो हमेशा मेरे लिए अलग-अलग प्रारूपेट के लिए काम करता है।

//Definition   
     public static DateTime ConvertPlainStringToDatetime(string Date, string inputFormat, string  outputFormat)
            {
                DateTime date;
                CultureInfo enUS = new CultureInfo("en-US");
                DateTime.TryParseExact(Date, inputFormat, enUS,
                                    DateTimeStyles.AdjustToUniversal, out date);

                string formatedDateTime = date.ToString(outputFormat);
                return Convert.ToDateTime(formatedDateTime);   
            }
//Calling

    string oFormat = "yyyy-MM-dd HH:mm:ss";
    DateTime requiredDT = ConvertPlainStringToDatetime("20190205","yyyyMMddHHmmss", oFormat  );
    DateTime requiredDT = ConvertPlainStringToDatetime("20190508-12:46:42","yyyyMMdd-HH:mm:ss", oFormat);

-1

Google खोज पर बहुत अधिक समय बिताने के बाद, मुझे निम्न समाधान मिला जब मैंने स्थानीय रूप से तारीख का समय दिया, तो अन्य सर्वर से कोई अपवाद नहीं था, त्रुटि थी ......... दिनांक उचित प्रारूप में नहीं है .. C # में टेक्स्ट बॉक्स की तारीख को बचाने / खोजने से पहले, बस या तो बाहरी सीरर कल्चर की जाँच करना डेटाबेस सर्वर कल्चर की तरह ही है .. Ex दोनों को "en-US" होना चाहिए या स्नैप शॉट के नीचे "en-GB" दोनों होना चाहिए।

यहाँ छवि विवरण दर्ज करें

यहां तक ​​कि अलग-अलग दिनांक प्रारूप जैसे (dd / mm / yyyy) या (yyyy / mm / dd) के साथ भी, यह सटीक रूप से बचाएगा या खोज करेगा।


उन m को कैपिटल करना है - M, महीना है, m मिनट है। ये आपको उदाहरण 2017/51/10 के लिए देंगे
क्रिस मोशिनिनी

इसका सिर्फ दिनांक प्रारूप दिखाना दिन / महीना / वर्ष या वर्ष / महीना / दिन हो सकता है .......... यह संस्कृति अंतर के बावजूद खोज करेगा ... समय के साथ भ्रमित न करें ....... ......... इस फॉर्मेट को डेटटाइम टिकर कैलंडर पर सेट किया जा सकता है ........
अब्दुल खालिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.