ISO8601 प्रारूप (उदा। 20100723T073000
) में दिनांक/समय का प्रतिनिधित्व करने वाली स्ट्रिंग को देखते हुए, मुझे अंततः एक सामान्य strftime
स्वरूप स्ट्रिंग का उपयोग करके उपयोगकर्ता द्वारा आपूर्ति किए गए प्रारूप में इसका विश्लेषण करना होगा। ऐसा करने के लिए, मुझे ISO8601 टाइमस्टैम्प को यूनिक्स टाइमस्टैंप में कनवर्ट करने की आवश्यकता है। पर्ल के लिए तारीख/समय में हेरफेर मॉड्यूल की एक बड़ी मात्रा है और मैं थोड़ा अभिभूत हूं। इस संबंध में कोई सुझाव कि इसे कैसे किया जा सकता है?मैं एक आईएस 8686 टाइमस्टैम्प को पर्ल में यूनिक्स समय में कैसे परिवर्तित कर सकता हूं?
7
A
उत्तर
13
दिनांक, समय, अवधि, समय क्षेत्र और प्रारूपों को संभालने के लिए चैंपियन मॉड्यूल DateTime है। एक बार जब आप अपनी डेटटाइम ऑब्जेक्ट प्राप्त कर लेते हैं, तो आप अन्य डेटटाइम ऑब्जेक्ट्स को जोड़ने/घटाने या DateTime::Duration ऑब्जेक्ट्स जोड़ने या किसी अन्य प्रारूप में इसे प्रिंट करने जैसी बड़ी संख्या में संचालन कर सकते हैं।
use strict; use warnings;
use DateTime;
use DateTime::Format::ISO8601;
my $dt = DateTime::Format::ISO8601->parse_datetime('20100723T073000');
print $dt->strftime('%F %T');
प्रिंट: "2010-07-23 07:30:00"
4
आप नहीं है, तो या है, तो आप कम से कम एक सबसेट पार्स कर सकते हैं DateTime::Format::ISO8601
मॉड्यूल स्थापित करने के लिए नहीं करना चाहता HTTP::Date
साथ ISO8601:
$ perl -MHTTP::Date -wle 'print str2time("2013-11-30T23:05:03")'
1385845503
किसी भी तारीख को संभालने के साथ के रूप में, समय क्षेत्र मुद्दों के बारे में सावधान रहना।