স্ট্রফটাইম ব্যবহার করে আমি কীভাবে পিরিয়ডের জন্য (এএম / প্রধানমন্ত্রী) হিসাব করতে পারি?


152

বিশেষত আমার কাছে কোড রয়েছে যা এটিকে সহজতর করে:

from datetime import datetime
date_string = '2009-11-29 03:17 PM'
format = '%Y-%m-%d %H:%M %p'
my_date = datetime.strptime(date_string, format)

# This prints '2009-11-29 03:17 AM'
print my_date.strftime(format)

কি দেয়? তারিখগুলি বিশ্লেষণ করার সময় পাইথন কেবলমাত্র পিরিয়ড সুনির্দিষ্টকে উপেক্ষা করে বা আমি বোকা কিছু করি?

উত্তর:


213

পাইথন time.strftimeডকস বলেছেন:

যখন স্ট্রপটাইম () ফাংশনটি ব্যবহার করা হয় তখন %pনির্দেশিকা কেবলমাত্র আউটপুট আওয়ার ক্ষেত্রকে প্রভাবিত করে যদি নির্দেশকে ঘন্টাটি %Iপার্স করার জন্য ব্যবহৃত হয়।

নিশ্চিতভাবেই, আপনার পরিবর্তনটি এটি কার্যকর %Hকরে %Iতোলে।


2
আপনার টাইম স্ট্রিংগুলিতে সন্ধ্যা 0.00 না হলে এটি কোনটি দুর্দান্ত ( %I1 শুরু হবে) !!
অ্যান্ডি হেডেন

1
@ অ্যান্ডি হেডেন 12 টা বা 12 টা বাজে। নিশ্চিত না যে 0 এএম বা 0 অপরাহ্ন বুদ্ধিমান হয়েছে কিনা। কেবল ২৪ ঘন্টার বিন্যাসে 0 তম ঘন্টা অর্থবহ হয় তবে তা এএম / প্রধানমন্ত্রী হয় না।
অরুণ

আপনার স্থানীয় লোকেশন পরীক্ষা করার বিষয়টিও নোট করুন। আপনি যদি এমন লোকেল ব্যবহার করছেন যা সকাল / সন্ধ্যা ব্যবহার করে না তবে আপনাকে লোকাল হিসাবে স্যুইচ করতে হবে যা আমি / পিএম ব্যবহার করি না আমি% 1 এবং% p ব্যবহার করেছি এবং %_ ফাঁকা রেখে গিয়েছিলে ডি_ডিএলকে লোকেল হিসাবে ব্যবহার করার সময়? এন_জিবিতে স্যুইচ করা% p দৃশ্যমান।
টর্স্টেন

56
format = '%Y-%m-%d %H:%M %p'

ফর্ম্যাট %Hপরিবর্তে ব্যবহার করা হয় %I। যেহেতু %H"24 ঘন্টা" ফর্ম্যাট তাই এটি সম্ভবত %pতথ্যটি ফেলে দিচ্ছে । আপনি যদি এটি পরিবর্তন করেন তবে এটি ঠিক কাজ %Hকরে %I



15

% I এর সাথে% H (একটি 24 ঘন্টা ঘন্টার একটি ঘন্টা) প্রতিস্থাপন করার চেষ্টা করবেন?

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