python - পাইথন প্রোগ্রামিং বাংলা বই pdf




কিভাবে পাইথন মধ্যে বর্তমান সময় পেতে (20)

আমি পাইথন বর্তমান সময় কিভাবে পেতে পারি?

time মডিউল

time মডিউল ফাংশন সরবরাহ করে যা আমাদেরকে "যুগ থেকে সেকেন্ড" এবং অন্যান্য ইউটিলিটিগুলিতে সময় বলে।

import time

ইউনিক্স যুগ সময়

এই ফর্ম্যাট আপনি ডাটাবেস সংরক্ষণের জন্য টাইমস্ট্যাম্প পেতে উচিত। এটি একটি সহজ ভাসমান বিন্দু সংখ্যা যা একটি পূর্ণসংখ্যা রূপান্তর করা যেতে পারে। এটি সিকিউরিটির জন্য কয়েক সেকেন্ডেও ভাল, কারণ এটি 1 জানুয়ারী, 1970 00:00:00 থেকে সেকেন্ডের সংখ্যাকে প্রতিনিধিত্ব করে এবং এটি অন্য স্মৃতির সাথে সম্পর্কিত স্মৃতির আলো যা আমরা পরের দিকে দেখব:

>>> time.time()
1424233311.771502

এই টাইমস্ট্যাম্পটি লিপ-সেকেন্ডের জন্য হিসাব করে না, তাই এটি রৈখিক নয় - লীপ সেকেন্ডগুলি উপেক্ষা করা হয়। সুতরাং এটি আন্তর্জাতিক ইউটিসি মানের সমান নয়, তবে এটি বন্ধ, এবং তাই রেকর্ড-রক্ষণের বেশিরভাগ ক্ষেত্রেই বেশ ভাল।

এই, যদিও মানুষের সময়সূচী জন্য আদর্শ নয়। যদি আপনার কোনও ভবিষ্যত ইভেন্ট থাকে তবে আপনি নির্দিষ্ট সময়ের মধ্যে এটি করতে চান তবে আপনি সেই সময়টি স্ট্রিং দিয়ে সংরক্ষণ করতে চান যা একটি ডেটাটাইম বস্তুতে প্যারেড করা যেতে পারে অথবা সিরিয়ালাইজড ডেটাটাইম অবজেক্ট (এটি পরে বর্ণিত হবে)।

time.ctime

আপনি আপনার অপারেটিং সিস্টেমের দ্বারা পছন্দসই ভাবে বর্তমান সময়টি উপস্থাপন করতে পারেন (যার মানে আপনি আপনার সিস্টেমের পছন্দগুলি পরিবর্তন করার সময় এটি পরিবর্তন করতে পারেন, তাই অন্য সকল সিস্টেমে মানসম্মত হতে এটিকে নির্ভর করবেন না, যেমন আমি অন্যদের আশা করেছি) । এটি সাধারণত ব্যবহারকারী বান্ধব, তবে ক্রমানুসারে ক্রমানুসারে সাজানো স্ট্রিংগুলিতে এটি সাধারণত ফলাফল নয়:

>>> time.ctime()
'Tue Feb 17 23:21:56 2015'

আপনি টাইমস্ট্যাম্পগুলিকে মানব পাঠযোগ্য আকারে ctime হাইড্রাইট করতে পারেন:

>>> time.ctime(1424233311.771502)
'Tue Feb 17 23:21:51 2015'

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

datetime মডিউল

datetime মডিউলটি এখানেও বেশ দরকারী:

>>> import datetime

datetime.datetime.now

datetime.now একটি ক্লাস পদ্ধতি যা বর্তমান সময় প্রদান করে। এটি টাইমজোন তথ্য ছাড়াই time.localtime ব্যবহার করে (যদি না দেওয়া হয় তবে অন্যথায় time.localtime অবগত থাকুন)। এটি একটি উপস্থাপনা (যা আপনাকে একটি সমতুল্য বস্তু পুনরায় তৈরি করার অনুমতি দেয়) শেলটিতে প্রতিচ্ছবি হয়, কিন্তু যখন এটি মুদ্রিত (অথবা একটি str ) হয় তখন এটি মানব পাঠযোগ্য (এবং প্রায় আইএসও) ফর্ম্যাটে থাকে এবং লেক্সিকোগ্রাফিক সাজানোর সমান কালক্রমিক সাজানোর:

>>> datetime.datetime.now()
datetime.datetime(2015, 2, 17, 23, 43, 49, 94252)
>>> print(datetime.datetime.now())
2015-02-17 23:43:51.782461

utcnow এর utcnow

আপনি UTC সময়, একটি বিশ্বব্যাপী মানদন্ডের মধ্যে একটি ডটটাইম অবজেক্টটি পেতে পারেন:

>>> datetime.datetime.utcnow()
datetime.datetime(2015, 2, 18, 4, 53, 28, 394163)
>>> print(datetime.datetime.utcnow())
2015-02-18 04:53:31.783988

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

সময়মত টাইমজোন সচেতন

যাইহোক, আমরা যে পর্যন্ত ডেটাটাইম অবজেক্ট তৈরি করেছি তা সহজেই বিভিন্ন টাইমজোনগুলিতে রূপান্তর করা যায়। আমরা pytz মডিউল সঙ্গে যে সমস্যা সমাধান করতে পারেন:

>>> import pytz
>>> then = datetime.datetime.now(pytz.utc)
>>> then
datetime.datetime(2015, 2, 18, 4, 55, 58, 753949, tzinfo=<UTC>)

সমানভাবে, পাইথন 3-এ আমাদের timezone ক্লাস রয়েছে যা একটি ইউটিসি timezone ইনস্ট্যান্স সংযুক্ত করে, যা বস্তুর টাইমজোন সচেতন করে তোলে (কিন্তু সহজ pytz মডিউল ব্যতীত অন্য টাইমজোন রূপান্তর করতে পাঠকের ব্যায়াম হিসাবে বাকি থাকে):

>>> datetime.datetime.now(datetime.timezone.utc)
datetime.datetime(2015, 2, 18, 22, 31, 56, 564191, tzinfo=datetime.timezone.utc)

এবং আমরা দেখতে পাই যে আমরা সহজেই আসল utc বস্তুর থেকে টাইমজোনগুলিতে রূপান্তর করতে পারি।

>>> print(then)
2015-02-18 04:55:58.753949+00:00
>>> print(then.astimezone(pytz.timezone('US/Eastern')))
2015-02-17 23:55:58.753949-05:00

এছাড়াও আপনি pytz টাইমজোন localize পদ্ধতির সাথে সচেতন একটি সাদাসিধে ডেটাটাইম অবজেক্টটি তৈরি করতে পারেন, বা টিজিইনফো বৈশিষ্ট্যটি প্রতিস্থাপন করে ( replace , এটি অন্ধভাবে সম্পন্ন করা হয়), তবে এটি সর্বোত্তম অনুশীলনগুলির চেয়ে বেশি শেষ রিসর্ট:

>>> pytz.utc.localize(datetime.datetime.utcnow())
datetime.datetime(2015, 2, 18, 6, 6, 29, 32285, tzinfo=<UTC>)
>>> datetime.datetime.utcnow().replace(tzinfo=pytz.utc)
datetime.datetime(2015, 2, 18, 6, 9, 30, 728550, tzinfo=<UTC>)

pytz মডিউলটি আমাদের datetime অবজেক্টকে টাইমজোন সচেতন করতে এবং pytz মডিউলটিতে উপলব্ধ শত শত pytz মধ্যে রূপান্তর করতে দেয়।

ইউটিসি সময়ের জন্য এই বস্তুটিকে দৃশ্যমানভাবে সীমাবদ্ধ করে এবং একটি ডাটাবেসের মধ্যে সংরক্ষণ করতে পারে তবে এটি আরও বেশি মেমরির প্রয়োজন হবে এবং কেবল ইউনিক্স ইপোক সময়টি সংরক্ষণের চেয়ে ত্রুটিযুক্ত হতে হবে।

দেখার সময় অন্যান্য উপায় অনেক ত্রুটি প্রবণ, বিশেষত যখন বিভিন্ন সময় অঞ্চল থেকে আসা তথ্য সঙ্গে ডিল করা হয়। কোন টাইমজোন কোন স্ট্রিং বা সিরিয়ালাইজড ডটটাইম বস্তুর উদ্দেশ্যে কোনও বিভ্রান্তি নেই বলে আপনি চান।

আপনি যদি ব্যবহারকারীর জন্য ctime সাথে সময় প্রদর্শন করেন, তবে ctime সুন্দরভাবে কাজ করে, একটি টেবিলে নয় (এটি সাধারণত ভালভাবে সাজানো হয় না), তবে সম্ভবত ঘড়ির মধ্যে। যাইহোক, আমি পাইথনে সময় নিয়ে কাজ করার সময়, ব্যক্তিগতভাবে ইউনিক্স সময় ব্যবহার করে, অথবা টাইমজোন সচেতন UTC datetime অবজেক্ট ব্যবহার করে সুপারিশ করি।

বর্তমান সময় পেতে ব্যবহৃত মডিউল / পদ্ধতি কি?


আপনি time বস্তুর হিসাবে বর্তমান সময় প্রয়োজন হলে:

>>> import datetime
>>> now = datetime.datetime.now()
>>> datetime.time(now.hour, now.minute, now.second)
datetime.time(11, 23, 44)

আপনি যদি NumPy ব্যবহার করে থাকেন তবে সরাসরি আপনি numpy.datetime64 () ফাংশন ব্যবহার করতে পারেন।

import numpy as np
str(np.datetime64('now'))

শুধুমাত্র তারিখের জন্য:

str(np.datetime64('today'))

অথবা, যদি আপনি ইতিমধ্যে পণ্ডাস ব্যবহার করছেন তবে আপনি pandas.to_datetime () ফাংশন ব্যবহার করতে পারেন:

import pandas as pd
str(pd.to_datetime('now'))

বা:

str(pd.to_datetime('today'))

আপনি যদি এমএসের বর্তমান টাইমস্ট্যাম্পটি চান (উদাহরণস্বরূপ, কার্যকর সময় পরিমাপ করতে), আপনি "টাইমাইট" মডিউলটি ব্যবহার করতে পারেন:

import timeit
start_time = timeit.default_timer()
do_stuff_you_want_to_measure()
end_time = timeit.default_timer()
print("Elapsed time: {}".format(end_time - start_time))

আপনি সময়টি পেতে এই ফাংশনটি ব্যবহার করতে পারেন (দুর্ভাগ্যবশত এটি AM বা PM না বলে):

def gettime():
        from datetime import datetime
        return ((str(datetime.now())).split(' ')[1]).split('.')[0]

পরে একত্রিত করার জন্য ঘন্টা, মিনিট, সেকেন্ড এবং মিলিসেকেন্ড পেতে, আপনি এই ফাংশন ব্যবহার করতে পারেন:

ঘন্টা:

def gethour():
        from datetime import datetime
        return return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[0]

মিনিট:

def getminute():
        from datetime import datetime
        return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[1]

দ্বিতীয়ত:

def getsecond():
        from datetime import datetime
        return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[2]

মিলিসেকেন্ডে:

def getmillisecond():
        from datetime import datetime
        return return (str(datetime.now())).split('.')[1]

আমি ফরম্যাট ছাড়া সময় পেতে ব্যবহার করে নিম্নলিখিত। কিছু লোক বিভক্ত পদ্ধতি পছন্দ করে না, তবে এটি এখানে দরকারী:

from time import ctime
print ctime().split()[3]

এটি এইচ এইচ এ মুদ্রণ করবে: এমএম: এসএস বিন্যাস।


এই প্রশ্নটির জন্য শুধু একটি নতুন উত্তর দরকার নেই ... একটি চকচকে নতুন-আইশ খেলনা / মডিউল, তবে যথেষ্ট যুক্তিযুক্ত। যে Pendulum লাইব্রেরি , যা যা তীর প্রচেষ্টা চেষ্টা করা হয়, অভ্যন্তরীণ ত্রুটি এবং বাগ যা তীর beset ছাড়া ছাড়া।

উদাহরণস্বরূপ, মূল প্রশ্নটির উত্তর:

>>> import pendulum
>>> print(pendulum.now())
2018-08-14T05:29:28.315802+10:00
>>> print(pendulum.utcnow())
2018-08-13T19:29:35.051023+00:00

অনেকগুলি স্ট্যান্ডার্ড রয়েছে যার জন্য অনেকগুলি RFCs এবং আইএসও সহ অ্যাড্রেসিংয়ের প্রয়োজন হয়। কখনও তাদের মিশ্রিত পেতে; চিন্তা করবেন না, dir(pendulum.constants) একটু নজর দিন, যদিও সেখানে আরএফসি এবং আইএসও ফরম্যাটগুলির তুলনায় আরও কিছু আছে।

যখন আমরা স্থানীয় বলতে পারি, তবে আমরা কী বলতে চাচ্ছি? আচ্ছা আমি বলতে চাচ্ছি

>>> print(pendulum.now().timezone_name)
Australia/Melbourne
>>>

সম্ভবত আপনি বাকি বাকি কোথাও মানে।

এবং এটা যায়। লম্বা গল্প সংক্ষিপ্ত: পেন্ডুলামটি HTTP এবং HTTP এর জন্য অনুরোধগুলির তারিখ এবং সময়গুলির জন্য কী করার প্রচেষ্টা করে। এটি বিবেচনার যোগ্য, বিশেষ করে এটির ব্যবহারের সহজ এবং ব্যাপক ডকুমেন্টেশন উভয়ের জন্য।


এই সঙ্গে আমি শেষ পর্যন্ত কি শেষ:

>>>from time import strftime
>>>strftime("%m/%d/%Y %H:%M")
01/09/2015 13:11

এছাড়াও, এই টেবিলে সঠিক ফর্ম্যাট কোডগুলি চয়ন করার জন্য একটি প্রয়োজনীয় রেফারেন্স যা আপনি চান তা ফর্ম্যাট করাতে (পাইথন "ডেটটাইম" ডকুমেন্টেশন থেকে here )।


ডিফল্টরূপে, now() ফাংশন YYYY-MM-DD HH:MM:SS:MS আউটপুট প্রদান করে YYYY-MM-DD HH:MM:SS:MS ফর্ম্যাট। পাইথন স্ক্রিপ্টের বর্তমান তারিখ এবং সময় পেতে স্ক্রিনে ফলাফলগুলি নিচের নমুনা স্ক্রিপ্টটি ব্যবহার করুন। নীচের বিষয়বস্তু দিয়ে file getDateTime1.py তৈরি করুন।

import datetime

currentDT = datetime.datetime.now()
print (str(currentDT))

আউটপুট নিচে মত দেখাচ্ছে:

2018-03-01 17:03:46.759624

দ্রুততম উপায়

>>> import time
>>> time.strftime("%Y%m%d")
'20130924'

বর্তমান সময় পেতে Pandas ব্যবহার, হাতে সমস্যাটি হত্যাকাণ্ডের উপর নির্ভর করে:

import pandas as pd
print (pd.datetime.now())
print (pd.datetime.now().date())
print (pd.datetime.now().year)
print (pd.datetime.now().month)
print (pd.datetime.now().day)
print (pd.datetime.now().hour)
print (pd.datetime.now().minute)
print (pd.datetime.now().second)
print (pd.datetime.now().microsecond)

আউটপুট:

2017-09-22 12:44:56.092642
2017-09-22
2017
9
22
12
44
56
92693

ব্যবহার করুন:

>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2009, 1, 6, 15, 8, 24, 78915)

>>> print(datetime.datetime.now())
2018-07-29 09:17:13.812189

এবং শুধু সময়:

>>> datetime.datetime.now().time()
datetime.time(15, 8, 24, 78915)

>>> print(datetime.datetime.now().time())
09:17:51.914526

আরও তথ্যের জন্য ডকুমেন্টেশন দেখুন।

টাইপিং সংরক্ষণ করার জন্য, আপনি datetime মডিউল থেকে datetime অবজেক্ট আমদানি করতে পারেন:

>>> from datetime import datetime

তারপর নেতৃস্থানীয় datetime. মুছে ফেলুন datetime. উপরের সব থেকে।


সহজ এবং সহজ:

datetime মডিউল ব্যবহার করে,

import datetime
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

আউটপুট:

2017-10-17 23:48:55

অথবা

time ব্যবহার করে,

import time
print(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()))

আউটপুট:

2017-10-17 18:22:26

হারলে এর উত্তরের অনুরূপ, কিন্তু একটি দ্রুত-নো-নোটিশের জন্য str() ফাংশনটি ব্যবহার করুন, সামান্য বেশি মানব পাঠযোগ্য বিন্যাস:

>>> from datetime import datetime
>>> str(datetime.now())
'2011-05-03 17:45:35.177000'

আমেরিকার নৌবাহিনীর অফিসিয়াল টাইমপেইপার মার্কিন নৌযান কেন জিজ্ঞাসা করবেন না?

import requests
from lxml import html

page = requests.get('http://tycho.usno.navy.mil/cgi-bin/timer.pl')
tree = html.fromstring(page.content)
print(tree.xpath('//html//body//h3//pre/text()')[1])

যদি আপনি ডিসি এলাকায় থাকেন (আমার মত) তবে বিলম্বিততা হয়তো খুব খারাপ নাও হতে পারে ...


.isoformat() ডকুমেন্টেশনের মধ্যে রয়েছে, কিন্তু এখনো এখানে নেই (এটি @ রাই ওয়েগ এর উত্তরের মতো শক্তিশালী):

>>> import datetime
>>> datetime.datetime.now().isoformat()
'2013-06-24T20:35:55.982000'

>>> from datetime import datetime
>>> datetime.now().strftime('%Y-%m-%d %H:%M:%S')

এই উদাহরণের জন্য, আউটপুট এরকম হবে: '2013-09-18 11:16:32'

এখানে strftime তালিকা।


>>> from time import gmtime, strftime
>>> strftime("%a, %d %b %Y %X +0000", gmtime())
'Tue, 06 Jan 2009 04:54:56 +0000'

যে নির্দিষ্ট বিন্যাসে বর্তমান জিএমটি আউটপুট। একটি স্থানীয় সময় () পদ্ধতি আছে।

এই page আরো বিস্তারিত আছে।


from time import ctime

// Day {Mon,Tue,..}
print ctime().split()[0]
// Month {Jan, Feb,..}
print ctime().split()[1]
// Date {1,2,..}
print ctime().split()[2]
// HH:MM:SS
print ctime().split()[3]
// Year {2018,..}
print ctime().split()[4]

যখন আপনি ctime কল করবেন () এটি 'দিন মাস তারিখ এইচএইচ: এমএম: এসএস ইয়ার' (উদাহরণস্বরূপ: 'Wed জানুয়ারী 17 16:53:22 2018') ফরম্যাটে কয়েক সেকেন্ডে রূপান্তর করবে, তখন আপনি split () পদ্ধতিটি কল করুন আপনার স্ট্রিং থেকে একটি তালিকা তৈরি করবে ['Wed', 'Jan', '17', '16:56:45', '2018'] (ডিফল্ট ডিলিমিটার স্থান)।

ব্রেকেট তালিকাতে চেয়েছিলেন যুক্তি 'নির্বাচন' ব্যবহার করা হয়।

এক শুধু একটি কোড লাইন কল করা উচিত। একজনকে তাদের মতো কল করা উচিত নয়, এটি একটি উদাহরণ ছিল, কারণ কিছু ক্ষেত্রে আপনাকে বিভিন্ন মান, বিরল কিন্তু অসম্ভব ক্ষেত্রে পাবেন না।


import datetime
date_time = datetime.datetime.now()

date = date_time.date()  # Gives the date
time = date_time.time()  # Gives the time

print date.year, date.month, date.day
print time.hour, time.minute, time.second, time.microsecond

dir(date) বা প্যাকেজ সহ কোন ভেরিয়েবল করবেন। আপনি পরিবর্তনশীল সঙ্গে যুক্ত সব গুণাবলী এবং পদ্ধতি পেতে পারেন।





time