'সোমবার 15 ফেব্রুয়ারী 2010' ফরমেটের সাথে আমার একটি ডেট স্ট্রিং রয়েছে। আমি '15 / 02/2010 'এ ফর্ম্যাটটি পরিবর্তন করতে চাই। কিভাবে আমি এটি করতে পারব?
'সোমবার 15 ফেব্রুয়ারী 2010' ফরমেটের সাথে আমার একটি ডেট স্ট্রিং রয়েছে। আমি '15 / 02/2010 'এ ফর্ম্যাটটি পরিবর্তন করতে চাই। কিভাবে আমি এটি করতে পারব?
উত্তর:
datetime
মডিউল আপনাকে এটি সাহায্য করতে পারে:
datetime.datetime.strptime(date_string, format1).strftime(format2)
নির্দিষ্ট উদাহরণের জন্য আপনি করতে পারেন
>>> datetime.datetime.strptime('Mon Feb 15 2010', '%a %b %d %Y').strftime('%d/%m/%Y')
'15/02/2010'
>>>
date_string
স্ট্রিং হিসাবে থাকা উচিত ।
format1
ইনপুট তারিখের স্ট্রিংয়ের ফর্ম্যাটটি প্রকাশ করতে একটি স্ট্রিং হওয়া দরকার। format2
আউটপুটে লক্ষ্য স্ট্রিং বিন্যাস।
আপনি ডেটুটিল লাইব্রেরি ইনস্টল করতে পারেন । এর মতো parse
ফাংশনটি বুঝতে পারে যে কোনও স্ট্রিংটি কী বিন্যাসে রয়েছে তা আপনার মতো বিন্যাসটি নির্দিষ্ট না করেই রয়েছে datetime.strptime
।
from dateutil.parser import parse
dt = parse('Mon Feb 15 2010')
print(dt)
# datetime.datetime(2010, 2, 15, 0, 0)
print(dt.strftime('%d/%m/%Y'))
# 15/02/2010
python 3.x
চাহিদা ইনস্টল করতেpython-dateutil
pip install python-dateutil
>>> from_date="Mon Feb 15 2010"
>>> import time
>>> conv=time.strptime(from_date,"%a %b %d %Y")
>>> time.strftime("%d/%m/%Y",conv)
'15/02/2010'
স্ট্রিংকে ডেটটাইম অবজেক্টে রূপান্তর করুন
from datetime import datetime
s = "2016-03-26T09:25:55.000Z"
f = "%Y-%m-%dT%H:%M:%S.%fZ"
out = datetime.strptime(s, f)
print(out)
output:
2016-03-26 09:25:55
এই প্রশ্নটি প্রায়শই আসার সাথে সাথে এখানে এর সহজ ব্যাখ্যা explanation
datetime
বা time
মডিউল দুটি গুরুত্বপূর্ণ ফাংশন আছে।
উভয় ক্ষেত্রেই আমাদের একটি বিন্যাসের স্ট্রিং দরকার। এটি উপস্থাপনা যা জানায় যে কীভাবে তারিখ বা সময়টিকে আপনার স্ট্রিংয়ে ফর্ম্যাট করা হয়।
এখন ধরে নেওয়া যাক আমাদের একটি তারিখ অবজেক্ট রয়েছে।
>>> from datetime import datetime
>>> d = datetime(2010, 2, 15)
>>> d
datetime.datetime(2010, 2, 15, 0, 0)
যদি আমরা এই তারিখ থেকে বিন্যাসে একটি স্ট্রিং তৈরি করতে চান 'Mon Feb 15 2010'
>>> s = d.strftime('%a %b %d %y')
>>> print s
Mon Feb 15 10
ধরে নেওয়া যাক আমরা এটিকে s
আবার কোনও datetime
বস্তুতে রূপান্তর করতে চাই ।
>>> new_date = datetime.strptime(s, '%a %b %d %y')
>>> print new_date
2010-02-15 00:00:00
তারিখের সময় সম্পর্কিত সমস্ত ফর্ম্যাটিং নির্দেশাবলী এই দস্তাবেজটি দেখুন।
কেবলমাত্র সমাপ্তির স্বার্থে: ব্যবহারের তারিখটি বিশ্লেষণ করার সময় strptime()
এবং তারিখটিতে কোনও দিন, মাস, ইত্যাদির নাম থাকে , সচেতন হন যে আপনাকে লোকেলের জন্য অ্যাকাউন্ট করতে হবে।
এটি একটি পাদটীকা হিসাবে উল্লেখ করা ডক্স হিসাবে ভাল।
উদাহরণ হিসাবে:
import locale
print(locale.getlocale())
>> ('nl_BE', 'ISO8859-1')
from datetime import datetime
datetime.strptime('6-Mar-2016', '%d-%b-%Y').strftime('%Y-%m-%d')
>> ValueError: time data '6-Mar-2016' does not match format '%d-%b-%Y'
locale.setlocale(locale.LC_ALL, 'en_US')
datetime.strptime('6-Mar-2016', '%d-%b-%Y').strftime('%Y-%m-%d')
>> '2016-03-06'
@ কোডেলিং এবং @ ব্যবহারকারী 1767754: নিম্নলিখিত দুটি লাইন কাজ করবে। আমি দেখেছি যে উদাহরণস্বরূপ যে সমস্যার জন্য জিজ্ঞাসা করা হয়েছিল তার সম্পূর্ণ সমাধান পোস্ট করেনি। আশা করি এটি যথেষ্ট ব্যাখ্যা।
import datetime
x = datetime.datetime.strptime("Mon Feb 15 2010", "%a %b %d %Y").strftime("%d/%m/%Y")
print(x)
আউটপুট:
15/02/2010
আপনি পান্ডা ব্যবহার করে এটি অর্জন করতে পারেন:
import pandas as pd
pd.to_datetime('Mon Feb 15 2010', format='%a %b %d %Y').strftime('%d/%m/%Y')
আউটপুট:
'15/02/2010'
আপনি বিভিন্ন ডেটাটাইপগুলির জন্য পান্ডাস পদ্ধতির প্রয়োগ করতে পারেন:
import pandas as pd
import numpy as np
def reformat_date(date_string, old_format, new_format):
return pd.to_datetime(date_string, format=old_format, errors='ignore').strftime(new_format)
date_string = 'Mon Feb 15 2010'
date_list = ['Mon Feb 15 2010', 'Wed Feb 17 2010']
date_array = np.array(date_list)
date_series = pd.Series(date_list)
old_format = '%a %b %d %Y'
new_format = '%d/%m/%Y'
print(reformat_date(date_string, old_format, new_format))
print(reformat_date(date_list, old_format, new_format).values)
print(reformat_date(date_array, old_format, new_format).values)
print(date_series.apply(lambda x: reformat_date(x, old_format, new_format)).values)
আউটপুট:
15/02/2010
['15/02/2010' '17/02/2010']
['15/02/2010' '17/02/2010']
['15/02/2010' '17/02/2010']
ডেটটাইম লাইব্রেরি ব্যবহার করুন http://docs.python.org/library/datetime.html 9.1.7 দেখুন। স্পেশাল স্ট্রিপটাইম () স্ট্রফটাইম () আচরণের উদাহরণ http: //