2011-05-02 11 views
6

मैं सीखने के अभ्यास के रूप में आम लिस्प (एसबीसीएल) में एक साधारण वेब स्क्रैपर लिख रहा हूं, & तिथि से क्रमबद्ध करना चाहता है। ऐसा करने के लिए, मुझे सार्वभौमिक समय में प्रारूप "एमएम/डीडी/वाईवायवाई" प्रारूप में तारीखों का विश्लेषण करना होगा।आम लिस्प में पार्स की तारीखों के लिए पैकेज?

मैं स्ट्रिंग & बिट्स को encode-universal-time में पास कर सकता हूं, लेकिन मुझे लगता है कि दिनांक पार्सिंग के लिए एक अंतर्निहित फ़ंक्शन (या लोकप्रिय तृतीय-पक्ष पैकेज) होना चाहिए। मैं किसी की सिफारिश करने की सराहना करता हूं :-)

+1

मनोरंजक स्पर्शक: एक लाइब्रेरी जो मुझे मिली थी, टिप्पणी के साथ एक वेबसाइट थी "फिक्समे: yyyymmddTHHMMSS Z भगवान को यह सब कुछ नहीं मानता है। ओवरहाल की आवश्यकता है "इसलिए मुझे लगा कि मैं इसे छोड़ दूंगा ;-) –

उत्तर

3

आप net-telent-date को आजमा सकते हैं, जिसमें PARSE-TIME है जो मुझे लगता है कि आप जो चाहते हैं वह करेंगे।

भी Common Lisp Directory पुस्तकालयों की एक सूची है, जिनमें से कई तिथियों को संभालने का दावा करते हैं।

2

net-telent-date और simple-date-time सामान्य लिस्प के लिए पुस्तकालय देखें। पूर्व में parse-time फ़ंक्शन है जिसका आप उपयोग कर सकते हैं (parse-time.lisp देखें)। दोनों QuickLisp पुस्तकालय संग्रह में शामिल हैं।

1

कई कार्यान्वयन में यूनिक्स इंटरफ़ेस है और, उसी मामले में, इसमें स्ट्रैप्टिम फ़ंक्शन शामिल है।

1

Antik दिनांक और समय संभालता है और इसमें दिनांक/समय पार्सर्स शामिल हैं। नतीजा एक "टाइमपॉइंट" है जो डिफ़ॉल्ट रूप से यूटीसी (सीएल का "सार्वभौमिक समय" कुछ अलग है, लेकिन इसे उसमें परिवर्तित किया जा सकता है)।

4

यह उत्तर बहुत देर हो चुकी है लेकिन local-time लाइब्रेरी विशेषतापूर्ण और व्यापक रूप से उपयोग की जाती है। यह लेख The long painful history of time पर आधारित है।

यह supports:

  1. समय और तिथि अंकगणित
  2. आईएसओ 8601 TIMESTRING स्वरूपित उत्पादन और
  3. रीडर मैक्रो को पार्स कोड में सीधे timestrings एम्बेड करने के लिए
  4. समय-क्षेत्र से निपटने (प्रारूप tzfile यूनिक्स पढ़ा जाएगा)
  5. सार्वभौमिक और यूनिक्स समय युग के बीच रूपांतरण
  6. जूलियन तिथि गणना
+2

हां, लेकिन यह तारीखों के पार्सिंग स्ट्रिंग प्रस्तुति का समर्थन नहीं करता है। – hijarian

+1

@hijarian मैंने इसे करने के लिए पैकेज क्ल-डेट-टाइम-पार्सर का उपयोग किया है, यह विभिन्न प्रकार के सामान्य प्रतिनिधित्व ले सकते हैं और उन्हें सार्वभौमिक-समय-इन-सेकंड पूर्णांक प्रतिनिधित्व में अनुवाद कर सकते हैं। –

+1

@hijarian यह स्ट्रिंग प्रस्तुति पर निर्भर करता है। उदाहरण के लिए, हालांकि '(स्थानीय समय: पार्स-टाइमस्ट्रिंग" 200 9/06/02 ") 'समस्याग्रस्त है, स्थानीय समय पार्सिंग अन्य स्ट्रिंग प्रारूपों के साथ काम कर सकती है - उदाहरण के लिए,' (स्थानीय समय: पार्स-टाइमस्ट्रिंग "2009-06-02") '। – dat

संबंधित मुद्दे