নম্বর থেকে মাসের নাম পান


230

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

উদাহরণস্বরূপ, যদি আমার থাকে তবে আমি 3ফিরে আসতে চাইmarch

date.tm_month()

স্ট্রিং কিভাবে পাবেন march?

উত্তর:


269

ক্যালেন্ডার API

সেখান থেকে আপনি দেখতে পাবেন যে calendar.month_name[3]এটি ফিরে আসবে March, এবং অ্যারের সূচকটি 0খালি স্ট্রিং, সুতরাং শূন্য- সূচকেও উদ্বিগ্ন হওয়ার দরকার নেই।


35
আপনি একটি ছোট মাসের জন্য ক্যালেন্ডার.মথ_এবব্র [i] ব্যবহার করতে পারেন - যেমন মার্চ
জে শেঠ

384
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B")

ফিরে: ডিসেম্বর

পাইথন ডকের ওয়েবসাইটে আরও কিছু তথ্য


[সম্পাদনা: @ গিরিবি থেকে দুর্দান্ত মন্তব্য] আপনি এমনও ব্যবহার করতে পারেন %bযা মাসের নামের জন্য সংক্ষিপ্ত স্বরলিপি দেয়।

mydate.strftime("%b")

উপরের উদাহরণের জন্য, এটি ফিরে আসবে Dec


7
আপনার আজকের দিনটির কোনও গুরুত্ব নেই বলে কোনও প্রদত্ত সংখ্যার (1 - 12) মাসের নাম জানা দরকার থাকলে এটি এতটা সহায়ক নয়। ক্যালেন্ডার.মোথ_নাম [i] বা ক্যালেন্ডার.মথ_এবব্র [i] এখানে আরও দরকারী।
জে শেঠ

11
mydate.strftime("%b")মাসের নামের জন্য সংক্ষিপ্ত স্বরলিপি প্রদান করে। (উপরের উদাহরণের জন্য, এটি ফিরে আসবে Dec)
গিরিবি

3
ওপি ইনপুট, না একটি datetime.datetime যেমন একটি পূর্ণসংখ্যা ব্যবহার করতে চান object.You করতে পারেন ব্যবহার mydate = datetime.datetime (2019, পূর্ণসংখ্যা, 1, 0, 0) কিন্তু এটা বরং কুৎসিত
Rutger Hofste

এটি কীভাবে প্রশ্নের উত্তর দেয় তা দেখতে আমি ব্যর্থ।
সিগ্লেসেট


35

আপনার আজকের দিনটির কোনও গুরুত্ব নেই বলে কোনও প্রদত্ত সংখ্যার (1 - 12) মাসের নাম জানা দরকার থাকলে এটি এতটা সহায়ক নয়।

calendar.month_name[i]

অথবা

calendar.month_abbr[i]

এখানে আরও দরকারী।

এখানে একটি উদাহরণ:

import calendar

for month_idx in range(1, 13):
    print (calendar.month_name[month_idx])
    print (calendar.month_abbr[month_idx])
    print ("")

নমুনা আউটপুট:

January
Jan

February
Feb

March
Mar

...

আপনার উত্তর করার জন্য আপনাকে ধন্যবাদ. যদি আমি কোনও পরামর্শ যুক্ত করতে পারি তবে এই কোডটি কীভাবে ব্যবহার করতে হয় month_nameএবং এবংmonth_abbr
জেম্যাক্স

এটি সহায়ক, আমি range(1, 13)আপনার উদাহরণটি ব্যবহার করার পরামর্শ দিচ্ছি যাতে আপনি আউটপুটে সমস্ত 12 মাস পান।
ডেভেজগোদা

21
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B") # 'December'
mydate.strftime("%b") # 'dec'

10

আমি এটি হিসাবে অফার করব (আমার মত) আপনার কাছে ডেটাফ্রেমে মাসের সংখ্যার কলাম রয়েছে:

df['monthName'] = df['monthNumer'].apply(lambda x: calendar.month_name[x])

10

এটি আমি যা করব:

from datetime import *

months = ["Unknown",
          "January",
          "Febuary",
          "March",
          "April",
          "May",
          "June",
          "July",
          "August",
          "September",
          "October",
          "November",
          "December"]

now = (datetime.now())
year = (now.year)
month = (months[now.month])
print(month)

এটি ফলাফল:

>>> September

(আমি এটি লিখেছিলাম যখন এটি আসল তারিখ ছিল)


3

কিছু ভাল উত্তর ইতিমধ্যে ক্যালেন্ডার ব্যবহার করে কিন্তু লোকেল সেট করার প্রভাবটি এখনও উল্লেখ করা হয়নি।

উদাহরণস্বরূপ, ফরাসী ভাষায়:

import locale
import calendar

locale.setlocale(locale.LC_ALL, 'fr_FR')

assert calendar.month_name[1] == 'janvier'
assert calendar.month_abbr[1] == 'jan'

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

কিছু লাইব্রেরির রুটিনে সেটলোকেলে () কল করা সাধারণত একটি খারাপ ধারণা, কারণ পার্শ্ব প্রতিক্রিয়া হিসাবে এটি পুরো প্রোগ্রামকে প্রভাবিত করে […]

এক্সটেনশন মডিউলগুলি কখনই সেটলোকেলে কল করা উচিত নয় () […]


1
ভাল সংযোজন, আমি কেবল একটি ফ্যালব্যাক সংস্কৃতি যুক্ত করার বা কেবল একটি চেষ্টা / সেট বাদে সেটলোকল কলটি গুছিয়ে রাখার পরামর্শ দিই, কারণ যদি সেই সংস্কৃতিটি না পাওয়া যায় তবে আপনি একটি ব্যতিক্রম পান (এটি চেষ্টা করার পরে আমার সাথে ঘটেছিল;)
ফায়ারপল

আমি মনে করি আমি কোডটি সেভাবেই রেখে দেব কারণ লোকেল সেট করা সম্ভবত এমন কিছু নয় যা আপনি যেভাবেই কোডের নিকটে করতে পারেন। আমি কেবল হাইলাইট করতে চেয়েছিলাম কীভাবে লোকেল সেট করা থেকে মানগুলিও প্রভাবিত করে calendar। আমি সম্ভবত পাঠ্য আপডেট করতে পারেন।
সিগ্লেসেট

1

মাসের সংখ্যার সালিসি ব্যাপ্তির জন্য

month_integer=range(0,100)
map(lambda x: calendar.month_name[x%12+start],month_integer)

সঠিক তালিকা প্রদান করবে। startমাস-পূর্ণসংখ্যার তালিকায় জানুয়ারি শুরু হয় সেখান থেকে পরিমাপ সামঞ্জস্য করুন ।


0

8.1। DATETIME - মৌলিক তারিখ এবং সময় ধরনের - পাইথন 2.7.17 ডকুমেন্টেশন https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

সমস্ত স্ট্রফটাইম আর্গুমেন্টের একটি তালিকা। বাম শূন্য পূরণের ফর্ম্যাট করার মতো মাসের নাম এবং দুর্দান্ত স্টাফ। "নিষ্পাপ" আর্গুমেন্টের মতো নিয়মের মতো স্টাফের পুরো পৃষ্ঠাটি পড়ুন। এখানে সংক্ষিপ্ত তালিকা রয়েছে:% একটি সূর্য, সোম,…, শনি

% এ রবিবার, সোমবার,…, শনিবার

% w উইকডে সংখ্যা হিসাবে, যেখানে 0 রবিবার

% d মাসের 01, 02,…, 31

% বি জানু, ফেব্রুয়ারী,…, ডিসেম্বর

% বি জানুয়ারী, ফেব্রুয়ারি, ..., ডিসেম্বর

% মি মাসের সংখ্যা শূন্য-প্যাডেড 01, 02,…, 12 হিসাবে

% y 2 অঙ্কের বছর শূন্য-প্যাডড 00, 01,…, 99

% Y 4 অঙ্কের বছর 1970, 1988, 2001, 2013

% এইচ আওয়ার (24 ঘন্টা ঘড়ি) শূন্য প্যাডেড 00, 01,…, 23

% I ঘন্টা (12-ঘন্টা ঘড়ি) শূন্য-প্যাডেড 01, 02,…, 12

% পি এএম বা পিএম

% এম মিনিট শূন্য-প্যাডড 00, 01,…, 59

% S দ্বিতীয় শূন্য-প্যাডড 00, 01,…, 59

% f মাইক্রোসেকেন্ড শূন্য প্যাডযুক্ত 000000, 000001,…, 999999

% z ইউটিসি ফর্মের অফসেট + এইচএইচএমএম বা -এইচএমএম +0000, -0400, +1030

% জেড টাইম জোনের নাম ইউটিসি, ইএসটি, সিএসটি

% j বছরের শূন্য-প্যাডযুক্ত দিন 001, 002,…, 366

বছরের শূন্য প্যাডযুক্ত% ইউ সপ্তাহের সংখ্যা, প্রথম রবিবারের আগের দিনগুলি 0 হয়

বছরের% ডাব্লু সপ্তাহের সংখ্যা (সোমবার প্রথম দিন হিসাবে)

% সি লোকেলের তারিখ এবং সময় উপস্থাপনা। মঙ্গলবার আগস্ট 16 21:30:00 1988

% x লোকেলের তারিখের উপস্থাপনা। 08/16/1988 (en_US)

% এক্স লোকেলের সময় উপস্থাপনা। 21:30:00

%% আক্ষরিক '%' অক্ষর।


-6

আমি তাদের নিজস্ব মাসে সংখ্যার রূপান্তর করার জন্য আমার নিজস্ব ফাংশন তৈরি করেছি।

def month_name (number):
    if number == 1:
        return "January"
    elif number == 2:
        return "February"
    elif number == 3:
        return "March"
    elif number == 4:
        return "April"
    elif number == 5:
        return "May"
    elif number == 6:
        return "June"
    elif number == 7:
        return "July"
    elif number == 8:
        return "August"
    elif number == 9:
        return "September"
    elif number == 10:
        return "October"
    elif number == 11:
        return "November"
    elif number == 12:
        return "December"

তারপরে আমি ফাংশনটি কল করতে পারি। উদাহরণ স্বরূপ:

print (month_name (12))

আউটপুট:

>>> December

3
অন্যান্য উত্তরে যেমন দেখানো হয়েছে, বিল্ট-ইন calendarমডিউলটিতে এই কার্যকারিতা ইতিমধ্যে বিদ্যমান । একই ফলাফলগুলির প্রতিরূপ তৈরি করতে আপনার নিজস্ব ফাংশন তৈরি করে কী লাভ হতে পারে? এছাড়াও, একটি অভিধান এলিফ স্টেটমেন্টগুলির সিরিজের তুলনায় অনেক দ্রুত হবে।
টম

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