PowerShell का उपयोग करके दिनांक स्ट्रिंग को पार्स करना और प्रारूपित करना


1

निम्नलिखित लाइन वाली CSV-फ़ाइल को देखते हुए:

HEAD; 1; 49,999; 2017/08/10 ;;;

.. मुझे d-m-yyy के रूप में दी गई तिथि को dd.mm.yyyy और / या yyyy-mm-dd (निश्चित रूप से, स्वाभाविक रूप से दोहरे अंक वाले दिन और महीने के रूप में) में सुधार करने की आवश्यकता है

जबकि मुझे PowerShell के पीछे बहुत अधिक चतुराई दिखाई देती है, मुझे यह बहुत बुरा लगता है। कोई भी मदद बहुत ही सराहनीय होगी!


1
यह मानते हुए कि आप पहले से ही जानते हैं कि सीएसवी-फाइल को पावरस्लाइ में कैसे आयात किया जाए, यह आपको सही दिशा में इंगित करता है: Get-Date 8-10-2017 -Format "MM.dd.yyyy"
whatever

यह एक आकर्षण की तरह काम करता है, सिवाय इसके कि यह मूल दिन और महीने की स्थिति की गलत व्याख्या करता है। 8-10 अक्टूबर 8 का मतलब है, 10 अगस्त नहीं जो कि cmdlet बाहर है ..
Bjørn H. Sandvik

1
उस स्थिति में आपको शक्तियों को बताना होगा कि किन संस्कृतियों का उपयोग करना है: $Culture = New-Object system.globalization.cultureinfo 'en-us'; Get-Date ([datetime]::parse("8-10-2017",$Culture)) -Format dd.MM.yyyy
whatever

मैं PowerShell को बहुत खराब पसंद करना चाहता हूं .. एक पूर्ण और उत्कृष्ट समाधान के लिए धन्यवाद, जो भी हो!
Bjørn H. Sandvik

जवाबों:


1

यह मूल रूप से संबोधित समस्या थी इडेरा पॉवरटिप ऑफ द डे 12 अक्टूबर, 2017 के लिए । प्रस्तुत समाधान का उपयोग करना था ParseExact की विधि DateTime .NET वर्ग । यह मानते हुए कि आपने CSV से तारीख निकाली है और इसे चर में संग्रहीत किया है $ActionDateString, तो आप इसे एक में बदल देंगे DateTime वस्तु:

$DT = [DateTime]::ParseExact($ActionDateString, "dd-MM-yyyy", $null)

और फिर आप का उपयोग कर सकते हैं DateTime वस्तु $DT जैसा आप चाहें।

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