फ़ाइल नाम में आपका पसंदीदा दिनांक और समय प्रारूप क्या है? [बन्द है]


90

यह एक कुछ व्यक्तिपरक सवाल है, और चीजों की बड़ी योजना में बहुत महत्वपूर्ण नहीं है, लेकिन कुछ ऐसा है जो मुझे नियमित रूप से परेशान करता है। ऐसा लगता है कि फ़ाइल नाम में टाइमस्टैम्प लगाने का कोई स्व-स्पष्ट तरीका नहीं है ।

उद्देश्य मुद्दा यह है कि फ़ाइल नामों में टाइमस्टैम्प को क्रमबद्ध होना चाहिए । लेकिन "s" ( "yyyy-MM-ddTHH:mm:ss") और "u" ( "yyyy-MM-dd HH:mm:ssZ") जैसे .NET सॉर्ट करने योग्य दिनांक प्रारूप ':' वर्णों के कारण फ़ाइल नामों में मान्य नहीं हैं।

दूसरी बात यह है कि आपको आसानी से देखना चाहिए कि सार्वभौमिक या स्थानीय समय का उपयोग किया जाता है या नहीं । व्यावहारिक रूप से, उपयोगकर्ता स्थानीय समय से सार्वभौमिक समय तक पसंद करते हैं।

मैं मूल समय प्रारूप के साथ आईएसओ 8601 का उपयोग कर रहा हूं।

  • स्थानीय समय प्रारूप स्ट्रिंग "yyyy-MM-ddTHHmmsszz"
  • UTC प्रारूप स्ट्रिंग "yyyy-MM-ddTHHmmssZ"

इन प्रारूपों में मेरा वर्तमान स्थानीय समय "2009-08-08T151800+03"और यूटीसी होगा"2009-08-08T121800Z"

आप "K" के साथ DateTime.Kind को ऑटोडेट भी कर सकते हैं और उपयोग कर सकते हैं "yyyy-MM-ddTHHmmssK", लेकिन फिर आपको ':' वर्णों को बदलना होगा।

कोई अन्य सुझाव?

संपादित करें: अब तक कुछ नोट:

"yyyy-MM-ddTHHmmsszz"यदि एकाधिक समय क्षेत्र शामिल हैं, तो स्थानीय समय + समय क्षेत्र स्वरूप अब सॉर्टेबल नहीं है। ज्यादातर मामलों में यह समय क्षेत्र की जानकारी को छोड़ने के लिए समझ में आता है अगर यह बेमानी है, और अन्यथा यूटीसी का उपयोग करें।

एक और बात यह है कि यूटीसी को हमेशा अनुमान और गलतियों को रोकने के लिए 'जेड', 'जीएमटी' या 'यूटीसी' के साथ चिह्नित किया जाना चाहिए।

जूलियन तारीखें और अन्य स्टारडेट्स शांत हैं क्योंकि ग्रेगोरियन कैलेंडर के साथ तारीख अंकगणित ब्रिंडेड है।


2
मैं इस सब के साथ सहमत सिवाय इसके कि मैं है यह चीजों के बड़े योजना में महत्वपूर्ण हैं। आपका प्रारूप सबसे अच्छा है-मैं पूर्णांक ज़ोन को समायोजित करने के लिए ISO8601 में निर्दिष्ट 4 अंकों के टाइमज़ोन का भी उपयोग करूंगा। इसने मुझे हमेशा परेशान किया है कि ISO8601 फाइलनाम में निषिद्ध बृहदान्त्र को संबोधित नहीं करता है।
hpekristiansen

मैं blog.xam.de/2016/07/… पर एक पोस्ट में आईएसओ 8601 के आधार पर एक प्रारूप प्रस्तावित करता हूं - अगर हम एक प्रारूप पर सहमत हो सकते हैं, तो हमारी दुनिया आसान हो जाएगी :-)
डॉ मैक्स वोल्केल

"रचनात्मक के रूप में बंद नहीं" ?? वहाँ के लिए और हर प्रस्ताव के खिलाफ कारण हैं, तो यह है रचनात्मक। फ़ाइल नामकरण की बारीक दार्शनिक जानकारी के बारे में एक प्रश्न से दूर
हटने की आवश्यकता नहीं है

जवाबों:


58

मैं इसका उपयोग करता हूं:

My-File--2009-12-31--23-59-59.txt
  • जगह नहीं
  • टुकड़ों को अलग करने के लिए डबल डैश, प्रत्येक टुकड़े को देखना आसान है
  • केवल एक विराम चिह्न वर्ण (डैश) टाइप करना आसान बनाता है
  • कोई टाइमज़ोन नहीं क्योंकि मेरे लिए मैं हमेशा अपने स्थानीय समयक्षेत्र में काम कर रहा हूँ; अगर मुझे जरूरत थी तो मैं UTC के साथ जाऊंगा और --UTCसमय के बाद " " जोड़ूंगा ।

5
मैं लगभग वही करता हूं, हालांकि मैं टाइमस्टैम्प के साथ शुरू करता हूं और फिर 'माय-फाइल' सामान करता हूं, क्योंकि किसी को कालानुक्रमिक रूप से फाइल को वर्णानुक्रम में क्रमबद्ध करके फाइलों को देखने की अनुमति मिलती है।
क्राइस्टोफेड Christ

2
@ChristopheD: ज़रूर - मैं उस मामले में भी ऐसा ही करूँगा। मेरे जवाब के लिए, मैं उस मामले के बारे में सोच रहा था जहां आपके पास कई अलग-अलग फ़ाइलों के कई संस्करण हैं, और आप उन्हें फ़ाइल नाम से समूहीकृत करना चाहते हैं।
रिचीहिंडल

2
व्यक्तिगत रूप से मैं _टुकड़ों को अलग करने के लिए डबल डैश के बजाय अंडरस्कोर ( ) का उपयोग करना पसंद करता हूं । (जैसे My-File_2009-12-31_23-59-59.txt)
ऐली जी

name_-_2019-11-04--15-04-36.642621403_-_2019-11-04--15-04-36.642622803.extलिनक्स शेल के लिए A ठीक है। कोई समय क्षेत्र नहीं, लेकिन नैनोसेकंड परिशुद्धता के साथ।
इवान ब्लैक

15

मैं YYYY-MM-DD HHmmssफ़ाइल नाम के लिए उपयोग करूंगा , जब तक कि टाइमज़ोन की विशेष आवश्यकता या आईएसओ तिथियों में उन्हें पार्स करने की संभावित आवश्यकता न हो; उन मामलों में एक आईएसओ तिथि शायद बेहतर होगी।

संपादित करें: टाइमज़ोन वास्तव में कभी भी आवश्यक नहीं होना चाहिए; UTC में सब कुछ सहेजना और लोगों को यह बताना कि यह सब कुछ के समय क्षेत्र को निर्दिष्ट करने की तुलना में UTC अधिक कुशल है।


9
ouch, अपने फ़ाइल नाम में रिक्त स्थान?
सग्गी मलाची

10
स्पेस में क्या गड़बड़ है?
जॉय

41
हाँ, रिक्त स्थान जघन्य हैं। मैं व्यक्तिगत रूप से उन लोगों को ट्रैक करूंगा, जो फाइलनाम में रिक्त स्थान का उपयोग करते हैं और अजवाइन की गीली छड़ी के साथ उन्हें मारते हैं :-)
paxdiablo

1
@Saggi; अच्छी तरह से मैं शायद उस एक के लायक था, लेकिन गंभीरता से - मुझे एक सिस्टम दिखाओ जो रिक्त स्थान के साथ फ़ाइल नाम नहीं संभालता है? मैं जो इकट्ठा कर सकता था, उसमें कोई यूआरआई शामिल नहीं थे और इस तरह मैं स्पेस के बारे में बहुत ज्यादा चिंता नहीं करता। आप निश्चित रूप से उस जगह को किसी और चीज के लिए विनिमय कर सकते हैं, जैसे कि अंडरस्कोर या T, लेकिन जब आप इसे पढ़ते हैं तो यह कम स्वाभाविक है।
आप

1
मैं इस एक के लिए वोट (लेकिन मैं कभी रिक्त स्थान का उपयोग नहीं करूंगा), 4-अंकों वाला वर्ष होने का कारण जो y2k1 समस्या को दूर करेगा (लेकिन y10k एक नहीं, लेकिन जो वास्तव में एक XXXX उस बारे में देता है?)।
पैक्सिडाब्लो

9

यहाँ मेरा उपयोग है:

    private static string CreateMeaningfulFileName(string friendlyName, DateTime date)
    {
        StringBuilder sb = new StringBuilder();
        foreach (string s in friendlyName.Split(new char[] { ' ' }))//remove spaces
        {
            sb.Append(CultureInfo.CurrentCulture.TextInfo.ToTitleCase(s.ToLower()));//capitalize each segment
        }
        sb.Append("_" + date.ToString("yyyy-MM-dd_HH-mm"));//add date
        return sb.ToString();
    }

यह एक तारीख और विवरण लेता है। चलो "मुझे DOGS पसंद है" का उपयोग करें। का परिणाम:

ILikeDogs_1999-09-23_18-42


1
दिनांक और समय को तोड़ने का अच्छा तरीका है और @ रिचीहिंडल के उत्तर से 1 चार्ट कम है।
रॉबिनो

3

क्या टाइमस्टैम्प के लिए मानव पठनीय होना आवश्यक है? यदि नहीं, तो आप सिर्फ DateTime.Ticks.ToString () का उपयोग कर सकते हैं । बहुत सटीक, छांटने योग्य और कोई विशेष पात्र नहीं।


1
मैं कोशिश करता हूं और अगर संभव हो तो सब कुछ मानव पठनीय बना सकता हूं। यह JSON नोटेशन जैसी योजनाओं के महान मूल्यों में से एक है। यहां तक ​​कि अगर आपको नहीं लगता कि यह मानव पठनीय होने की जरूरत है, तो आप कभी नहीं जानते कि क्या आप चाहते हैं कि यह बाद में मानव पठनीय हो। इसके अलावा, यह आसान डिबगिंग के लिए बनाता है।
एडन मूर

लिंक नीचे है, यह क्या करने के लिए जाना होगा?
rbatt 21

@rbatt मुझे लगता है कि यह सिर्फ एक अस्थायी MSDN मुद्दा था - अब वापस होना चाहिए।
दान डिप्लो

2

आम तौर पर मैं yyyymmdd का उपयोग करता हूं। यदि और अधिक सटीकता की आवश्यकता है तो यह yyyymmddhhmmss में बदल जाता है


1

मैं यूनिक्स टाइमस्टैम्प का उपयोग करता हूं, जैसे। युग से कितने सेकंड बीत गए। यूटीसी में सभी समय। लेकिन अगर आप चाहें तो अनुमान लगा सकते हैं कि आप w / timezone डेटा को प्रीफ़िक्स कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.