আইএসও 8601 সময় ফর্ম্যাট কোন সময় জোন নাম সংরক্ষণ করে না, শুধুমাত্র সংশ্লিষ্ট UTC অফসেট সংরক্ষিত হয়।
পাইথন 3-তে ইউটিসি অফসেট সংরক্ষণের সময় একটি ফাইল সিটিটাইম একটি আইএসও 8601 টাইম স্ট্রিংয়ে রূপান্তর করতে:
>>> import os
>>> from datetime import datetime, timezone
>>> ts = os.path.getctime(some_file)
>>> dt = datetime.fromtimestamp(ts, timezone.utc)
>>> dt.astimezone().isoformat()
'2015-11-27T00:29:06.839600-05:00'
কোডটি ধরে নিয়েছে যে আপনার স্থানীয় সময় অঞ্চলটি পূর্ব টাইম অঞ্চল (ইটি) এবং আপনার সিস্টেমটি প্রদত্ত পসিক্স টাইমস্ট্যাম্প ( ts
) এর জন্য একটি সঠিক ইউটিসি অফসেট সরবরাহ করে , অর্থ্যাৎ পাইথন আপনার সিস্টেমে একটি historicalতিহাসিক টাইমজোন ডাটাবেসে অ্যাক্সেস পেয়েছে বা টাইম জোনে ছিল নির্দিষ্ট তারিখে একই নিয়ম।
আপনার যদি বহনযোগ্য সমাধানের প্রয়োজন হয়; tz ডাটাবেসে অ্যাক্সেস সরবরাহ করে এমন pytz
মডিউলটি ব্যবহার করুন :
>>> import os
>>> from datetime import datetime
>>> import pytz # pip install pytz
>>> ts = os.path.getctime(some_file)
>>> dt = datetime.fromtimestamp(ts, pytz.timezone('America/New_York'))
>>> dt.isoformat()
'2015-11-27T00:29:06.839600-05:00'
এক্ষেত্রে ফলাফলও একই রকম।
আপনার যদি টাইম জোনের নাম / সংক্ষেপণ / জোন আইডি প্রয়োজন হয় তবে এটি আলাদাভাবে সঞ্চয় করুন।
>>> dt.astimezone().strftime('%Y-%m-%d %H:%M:%S%z (%Z)')
'2015-11-27 00:29:06-0500 (EST)'
দ্রষ্টব্য: না, :
ইউটিসি অফসেটে এবং EST
টাইমজোন সংক্ষেপে আইএসও 8601 টাইম ফর্ম্যাটের অংশ নয়। এটি অনন্য নয়।
একই লাইব্রেরির বিভিন্ন গ্রন্থাগার / বিভিন্ন সংস্করণ একই তারিখ / সময় অঞ্চল জন্য বিভিন্ন সময় অঞ্চল নিয়ম ব্যবহার করতে পারে। এটি যদি ভবিষ্যতের তারিখ হয় তবে নিয়মগুলি এখনও অজানা হতে পারে। অন্য কথায়, একই ইউটিসি সময়টি আপনি কোন নিয়ম ব্যবহার করেন তার উপর নির্ভর করে ভিন্ন স্থানীয় সময়ের সাথে সঙ্গতিপূর্ণ হতে পারে - আইএসও 8601 ফর্ম্যাটে একটি সময় সাশ্রয় করে ইউটিসি সময় এবং স্থানীয় সময়কে সংরক্ষণ করে যা আপনার প্ল্যাটফর্মের ব্যবহারের বর্তমান সময় অঞ্চল নিয়মের সাথে সামঞ্জস্য করে । আপনার যদি আলাদা নিয়ম থাকে তবে আপনার স্থানীয় সময়টিকে আলাদা প্ল্যাটফর্মে পুনরায় গণনা করতে হবে।