কোনও এক্সএমএল ফাইলে তারিখ / সময়ের জন্য সঠিক বিন্যাসটি কী


98

.NET ব্যবহার করে কোনও এক্সএমএল ফাইল লিখতে গিয়ে আমি তারিখ / সময়ের জন্য কোন বিন্যাসটি ব্যবহার করব? আমি কি কেবল ব্যবহার করি DateTime.ToString(), বা আমাকে একটি নির্দিষ্ট বিন্যাস ব্যবহার করতে হবে?

উত্তর:


138

আমি সর্বদা আইএসও 8601 ফর্ম্যাটটি (যেমন 2008-10-31T15:07:38.6875000-05:00) ব্যবহার করি - date.ToString("o")। এটি পাশাপাশি এক্সএসডি তারিখের ফর্ম্যাট । এটি পছন্দসই ফর্ম্যাট এবং একটি স্ট্যান্ডার্ড ডেট এবং টাইম ফর্ম্যাট স্ট্রিং , যদিও আপনি প্রয়োজনে একটি ম্যানুয়াল ফর্ম্যাট স্ট্রিং ব্যবহার করতে পারেন, যদি আপনি তারিখ এবং সময়ের মধ্যে 'টি' না চান:date.ToString("yyyy-MM-dd HH:mm:ss");

সম্পাদনা: আপনি যদি কোনও এক্সএসডি বা ওয়েব পরিষেবা থেকে উত্পন্ন শ্রেণি ব্যবহার করছেন তবে আপনি কেবল শ্রেণির সম্পত্তিতে ডেটটাইম উদাহরণটি সরাসরি বরাদ্দ করতে পারেন। আপনি যদি এক্সএমএল পাঠ্য লিখছেন তবে উপরেরটি ব্যবহার করুন।


44

সম্পাদনা: এটি খারাপ পরামর্শ। উপরে হিসাবে "ও" ব্যবহার করুন। "এস" ভুল কাজ করে

আমি সর্বদা এটি ব্যবহার করি:

dateTime.ToUniversalTime().ToString("s");

আপনার স্কিমাটি যদি এমন দেখায় তবে এটি সঠিক:

<xs:element name="startdate" type="xs:dateTime"/>

যার ফলাফল:

<startdate>2002-05-30T09:00:00</startdate>

আপনি এখানে আরও তথ্য পেতে পারেন: http://www.w3schools.com/xML/schema_dtyype_date.asp


10
মনে রাখবেন এটি তারিখটিকে ইউটিসিতে রূপান্তর করে। আপনি যখন তারিখটি প্রক্রিয়া করেন, আপনাকে অবশ্যই লোকেলের উপর ভিত্তি করে আপনার বর্তমান টাইমজোনটিতে ফিরে রূপান্তর করতে হবে (আপনি যদি ইউটিসি-তে সমস্ত কিছু প্রক্রিয়াজাত না করেন)। এছাড়াও, সাধারণত আপনি তারিখটি ইউটিসি হিসাবে চিহ্নিত করতে শেষে একটি 'জেড' রাখবেন would
রায়ান

সাবান ইউআই থেকে একটি নেট নেট পরিষেবা কল করার সময় "এস" আমার পক্ষে কাজ করে।
ত্রিস্তান চ্যানিং

4

আপনি যদি ম্যানুয়ালি এক্সএমএল স্ট্রিংটি ব্যবহার করে থাকেন তবে var.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffZ")); এটি অফিশিয়াল এক্সএমএল তারিখের সময় ফর্ম্যাটটিকে আসবে। তবে যদি আপনি অন্তর্নির্মিত সিরিয়ালাইজেশন পদ্ধতিগুলি ব্যবহার করেন তবে আপনাকে ফর্ম্যাট সম্পর্কে চিন্তা করতে হবে না।


jonnii মূলত একই ফলাফল ফিরে আসবে।
চিলডেম্প

4
এক্ষেত্রে সমস্ত তারিখগুলি ইউটিসি সময় অঞ্চলে থাকতে হবে অন্যথায় "জেড" প্রত্যয় ব্যবহার ভুল।
Fr0sT

আমি পূর্ববর্তী মন্তব্যটি পুনরাবৃত্তি করব - যদি ডিটিটিউটি না হয় তবে এটি আসলে ভুল।
ব্র্যাডি মরিটজ

3

ডিটিডি কী বলতে হবে?

যদি এক্সএমএল ফাইলটি অন্য বিদ্যমান সফ্টওয়্যার (যেমন, এসওএপি) সাথে যোগাযোগের জন্য হয়, তবে সেই সফ্টওয়্যারটি যা প্রত্যাশা করে তা পরীক্ষা করে দেখুন।

যদি এক্সএমএল ফাইলটি অস্তিত্বহীন সফ্টওয়্যার (যেমন, আপনি যা লিখছেন) সাথে সিরিয়ালাইজেশন বা যোগাযোগের জন্য হয়, আপনি এটি সংজ্ঞায়িত করতে পারেন। সেক্ষেত্রে আমি এমন কিছু পরামর্শ দেব যা আপনার ভাষা (গুলি) পছন্দ করার জন্য পার্স করা সহজ এবং মানুষের পক্ষে পড়া সহজ। উদাহরণস্বরূপ, যদি আপনার ভাষা (ভিবি.এনইটি বা সি #। নেট বা যাই হোক না কেন) আপনাকে আইএসও তারিখগুলি (ওয়াইওয়াইওয়াই-এমএম-ডিডি) সহজেই পার্স করতে দেয় তবে আমি এটিই প্রস্তাব দেব।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.