2009-03-02 12 views
7

पर्ल में, localtime एक यूनिक्स टाइमस्टैम्प लेता है और साल/महीना/दिन/घंटा/मिनट/सेकंड इत्यादि देता है। मैं localtime के विपरीत की तलाश में हूं: मेरे पास भाग हैं, और मैं एक यूनिक्स बनाना चाहता हूं उनसे टाइमस्टैम्प।पर्ल में लोकलटाइम फ़ंक्शन के विपरीत क्या है?

उत्तर

7

कुछ उपयोग की की CPAN हो सकता है पर DateTime। इसमें लॉट समय मैनिपुलेशन/अनुवाद विधियों के भी हैं।

बस अपने हिस्सों का उपयोग करके डेटटाइम बनाएं और $ डेटाटाइम-> फॉर्मेटर ("% s") पर कॉल करें;

+0

हां। संदेह में, डेटटाइम का उपयोग करें - एक ट्रू पर्ल टाइम सिस्टम। क्रूर तिथि/समय औजारों के बीच आगे और पीछे कूदना हर्षजनक है। – Anirvan

14

आप Time::Local सीपीएएन मॉड्यूल में टाइमलोकल फ़ंक्शन का उपयोग कर सकते हैं।

नाम

समय :: स्थानीय - कुशलता से स्थानीय और GMT समय

SYNOPSIS

$time = timelocal($sec,$min,$hour,$mday,$mon,$year); 
$time = timegm($sec,$min,$hour,$mday,$mon,$year); 

वर्णन

इस मॉड्यूल कार्यों कि हैं प्रदान करता है-समय गणना अंतर्निर्मित perlके विपरीतफ़ंक्शन लोकटाइम() और जीएमटाइम()। वे एक छः तत्व सरणी के रूप में दिनांक स्वीकार करते हैं, और उदाहरण के लिए सिस्टम युग (आधी रात, 1 जनवरी, 1 9 70 जीएमटी) उदाहरण के लिए, समय (2) मान को सेकेंड में मान दें। यह मान सकारात्मक या नकारात्मक हो सकता है, हालांकि POSIX को केवल सकारात्मक मानों के लिए समर्थन की आवश्यकता है, इसलिए सिस्टम के युग से पहले की तारीख सभी ऑपरेटिंग सिस्टम पर काम नहीं कर सकती है।

के लिए अपेक्षित श्रेणियों पर ध्यान देने योग्य मूल्यों पर ध्यान देने योग्य है। माह के दिन का वास्तविक दिन वास्तविक दिन (यानी 1..31) है, जबकि माह जनवरी (0..11) से महीनों की संख्या है। यह लोकलटाइम() और gmtime() से लौटाए गए मानों के अनुरूप है।

नोट:POSIX::mktime एक बस अपने सी पुस्तकालय के mktime() समारोह के चारों ओर एक आवरण है। समय :: स्थानीय एक शुद्ध-पर्ल कार्यान्वयन है, और हमेशा पर्ल के localtime से मेल खाने वाले परिणाम देता है। इसके अलावा, समय :: स्थानीय gmtime प्रदान करता है, जबकि mktime केवल स्थानीय समय में काम करता है। (ठीक है, आप $ENV{TZ} को बदलने का प्रयास कर सकते हैं, लेकिन यह कुछ सिस्टम पर काम नहीं करता है।)

+0

मुझे नहीं पता कि समय :: स्थानीय और POSIX :: mktime के बीच क्या अंतर है, यदि कोई है, लेकिन मैंने हमेशा समय :: स्थानीय का उपयोग किया है और इसके साथ कभी भी कोई समस्या नहीं है। –

+1

नोट: पर्ल का लोकटाइम सिर्फ आपके सी लाइब्रेरी के लोकलटाइम या localtime_r फ़ंक्शन के आसपास एक रैपर है, और हमेशा सी के एमकेटाइम से मेल खाने वाले परिणाम देता है। :) – ysth

+1

ठीक है, एक पैच है जो पर्ल के लोकलटाइम वाई 2038 को सुरक्षित बनाता है, भले ही आपकी सी लाइब्रेरी का संस्करण न हो।मुझे नहीं लगता कि इसे अभी तक डिफ़ॉल्ट रूप से एकीकृत किया गया है, लेकिन यह संभवतः होगा। यह समय :: स्थानीय को ठीक करता है, लेकिन मुझे नहीं लगता कि यह POSIX :: mktime को पैच करता है। – cjm

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