/ / मैं नेट :: SFTP टाइमस्टैम्प को अलग समय क्षेत्र में कैसे प्रदर्शित करूँ? - पर्ल, टाइमज़ोन

मैं एक अलग समय क्षेत्र में नेट :: एसएफटीपी टाइमस्टैम्प कैसे प्रदर्शित करूं? - पर्ल, टाइमज़ोन

मै इस्तेमाल कर रहा हूँ Net :: SFTP। मेरा इरादा अपनी संशोधित तिथि के साथ फाइलों को सूचीबद्ध करना है। मैं UTC प्रारूप में दिनांक के साथ फ़ाइलों को सूचीबद्ध करने में सक्षम हूं। मुझे EDT फॉर्मेट में चाहिए। क्या कोई सेटिंग उपलब्ध है?

वर्तमान में, मैं लिनक्स पर पर्ल 5 का उपयोग कर रहा हूं।

my $sftp = Net::SFTP->new($host, %args) or die "Cannot connect to $@";
$sftp->ls("." , sub { print $_[0]->{longname}, "n" });

उत्तर:

जवाब के लिए 0 № 1

अगर मेरी समझ सही है, तो लोंगनाम का क्षेत्रलिस्टिंग सर्वर-रेंडर और अप्रचलित / उपयोग के लिए अनुशंसित नहीं है। SFTP प्रत्येक निर्देशिका प्रविष्टि के लिए डेटा के साथ एक संरचना प्रदान करता है, और समय को UTC में सूचीबद्ध किया गया है।

दस्तावेज़ीकरण से:

यदि $ subref निर्दिष्ट किया जाता है, निर्देशिका में प्रत्येक प्रविष्टि के लिए, $ subref कहा जाएगा और तीन कुंजियों के साथ हैश का संदर्भ दिया जाएगा: फ़ाइल नाम, निर्देशिका सूची में प्रविष्टि का नाम; लंबा नाम, ls -l जैसे "लंबी" सूची में एक प्रविष्टि; तथा एक नेट :: एसएफटीपी :: वस्तु को शामिल करता है, जिसमें प्रविष्टि (फ़ाइल, माइम, अनुमतियां, आदि) की फ़ाइल विशेषताएँ होती हैं।

तो आप उन पाने की जरूरत है वस्तु और उसका उपयोग एक वक़्त तथा mtime खेत। एक बार जब आप उनके पास हों, तो उन्हें स्थानीय समय क्षेत्र में परिवर्तित करना एक निश्चित समय क्षेत्र की आवश्यकता होने पर तुच्छ होना चाहिए।