জ্যাঙ্গোতে টাইমজোন কীভাবে সেট করবেন?


139

আমার জ্যাঙ্গো প্রকল্পের settings.pyফাইলটিতে আমার এই লাইনটি রয়েছে:

TIME_ZONE = 'UTC'

তবে আমি চাই আমার অ্যাপটি ইউটিসি + 2 টাইমজোনটিতে চলুক, তাই আমি এটিকে এটিকে পরিবর্তন করে দিয়েছি

TIME_ZONE = 'UTC+2'

এটি ত্রুটি দেয় ValueError: Incorrect timezone setting: UTC+2। এটি করার সঠিক উপায় কী?

ধন্যবাদ!

উত্তর:


228

এখানে বৈধ সময় অঞ্চলগুলির তালিকা রয়েছে:

http://en.wikipedia.org/wiki/List_of_tz_database_time_zones

তুমি ব্যবহার করতে পার

TIME_ZONE = 'Europe/Istanbul'

ইউটিসি + 02: 00 এর জন্য


3
আসলে এটি ঠিক ঠিক অর্ধেক বছর যখন ডিএসটি চালু হয় না। আপনি ইউটিসি + ২ বছরের রাউন্ডের জন্য আফ্রিকা / এমবাবেন ব্যবহার করতে পারেন
ক্রিস এসএইচ

28

Tz ডাটাবেস থেকে সমস্ত বৈধ টাইমজোন নাম (আইডি) এর একটি সেট পেতে , আপনি পাইথনে মডিউলটি ব্যবহারpytz করতে পারেন :

>>> import pytz # $ pip install pytz
>>> pytz.all_timezones_set
LazySet({'Africa/Abidjan',
         'Africa/Accra',
         'Africa/Addis_Ababa',
         'Africa/Algiers',
         'Africa/Asmara',
         'Africa/Asmera',
         ...
         'UTC',
         'Universal',
         'W-SU',
         'WET',
         'Zulu'})

1
এটি লক্ষ্য করার মতো বিষয়ও রয়েছে যে টাইমজোনগুলির একটি সংক্ষিপ্ত তালিকা রয়েছে, এতে অবহেলিতদের অন্তর্ভুক্ত নয় pytz.common_timezones
vmonteco

11

Tzinfo ডাটাবেস থেকে একটি বৈধ সময় অঞ্চল চয়ন করুন । তারা ফর্ম যেমন নিতে ঝোঁক Africa/GaborneএবংUS/Eastern

আপনার নিকটতম শহরের সাথে যেটি মেলে, বা আপনার টাইমজোন রয়েছে এমন একটি সন্ধান করুন, তারপরে আপনার TIME_ZONEমিলের মান নির্ধারণ করুন ।


4

বৈধ সময় অঞ্চল মানগুলি লিনাক্স এবং অন্যান্য ইউনিক্স সিস্টেম দ্বারা ব্যবহৃত tz (টাইমজোন) ডাটাবেসের উপর ভিত্তি করে। মানগুলি " অঞ্চল / অবস্থান " ফর্মের স্ট্রিং (এক্সএসডি: স্ট্রিং) যা এতে:

অঞ্চলটি একটি মহাদেশ বা সমুদ্রের নাম। অঞ্চলটিতে বর্তমানে অন্তর্ভুক্ত রয়েছে:

  • আফ্রিকা
  • আমেরিকা (উভয় উত্তর আমেরিকা এবং দক্ষিণ আমেরিকা)
  • এন্টার্কটিকা
  • উত্তর মেরু সঙক্রান্ত
  • এশিয়া
  • আটলান্টিক
  • অস্ট্রেলিয়া
  • ইউরোপ
  • ইত্যাদি (প্রশাসনিক অঞ্চল। উদাহরণস্বরূপ, "ইত্যাদি / ইউটিসি" সমন্বিত ইউনিভার্সাল সময়কে উপস্থাপন করে))
  • ভারতীয়
  • শান্তিপ্রয়াসী

অবস্থান হ'ল শহর, দ্বীপ বা অন্যান্য আঞ্চলিক নাম।

জোন নাম এবং আউটপুট সংক্ষিপ্তসারগুলি পসিক্স (পোর্টেবল অপারেটিং সিস্টেম ইন্টারফেস) ইউএনআইএক্স কনভেনশনগুলিতে মেনে চলে, যা গ্রিনউইচের পশ্চিমে ইতিবাচক (+) লক্ষণ এবং গ্রিনউইচের পূর্বে negativeণাত্মক (-) চিহ্নগুলি ব্যবহার করে, যা সাধারণত প্রত্যাশিত বিপরীত। উদাহরণস্বরূপ, “ইত্যাদি / জিএমটি + ৪” ইউটিসি (সমন্বিত ইউনিভার্সাল সময়) (গ্রিনউইচের পূর্ব) এর চেয়ে 4 ঘন্টা এগিয়ে নয় বরং ইউটিসি (যা গ্রিনিচের পশ্চিমে) এর পিছনে 4 ঘন্টার সাথে মিলে যায়।

সমস্ত বৈধ সময় অঞ্চল এখানে একটি তালিকা

আপনি নীচে আপনার সেটিংসে.পি টাইম জোন পরিবর্তন করতে পারেন

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'Asia/Kolkata'

USE_I18N = True

USE_L10N = True

USE_TZ = True

2

আমি এই প্রশ্নটি আমার জ্যাঙ্গো প্রকল্পের settings.pyফাইলের টাইমজোনটি যুক্তরাজ্যের কাছে পরিবর্তন করতে চেয়ে দেখলাম ।

Jfs এর সমাধানে tz ডাটাবেস ব্যবহার করে আমি উত্তরটি পেয়েছি:

    TIME_ZONE = 'Europe/London'

1
  1. আপনার স্থানীয় সময় অঞ্চলে TIME_ZONE পরিবর্তন করুন এবং 'সেটিং.পাই'-তে ইউএসপিএলজেডকে সত্য হিসাবে রাখুন:

    TIME_ZONE = 'এশিয়া / সাংহাই'

    USE_I18N = সত্য

    USE_L10N = সত্য

    USE_TZ = সত্য

  2. এটি ব্যাকএন্ড ডেটাবেজে ইউটিসি হিসাবে ডেটটাইম অবজেক্টটি লিখবে এবং সংরক্ষণ করবে ।

  3. তারপরে আপনার ফ্রন্টএন্ড টেমপ্লেটে ইউটিসি সময়কে রূপান্তর করতে টেমপ্লেট ট্যাগটি ব্যবহার করুন :

                <td> 
                    {% load tz %}
                    {% get_current_timezone as tz %}
                    {% timezone tz %}
                        {{ message.log_date | time:'H:i:s' }}
                    {% endtimezone %} 
                </td>

বা সংক্ষিপ্তভাবে টেমপ্লেট ফিল্টার ব্যবহার করুন :

                <td> 
                    {% load tz %}
                    {{ message.log_date | localtime | time:'H:i:s' }}
                </td>
  1. আপনি অফিসিয়াল ডকটিতে আরও বিশদ পরীক্ষা করতে পারেন: ডিফল্ট সময় অঞ্চল এবং বর্তমান সময় অঞ্চল

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


1

জ্যাঙ্গোর টিজেড নাম সহায়তার ভিত্তিতে সর্বজনীন সমাধান :

UTC-2 = 'Etc/GMT+2'
UTC-1 = 'Etc/GMT+1'
UTC = 'Etc/GMT+0'
UTC+1 = 'Etc/GMT-1'
UTC+2 = 'Etc/GMT-2'

+/- ইচ্ছাকৃতভাবে পরিবর্তন করা হয়।


0
  1. সর্বশেষতম পাইটজ ফাইলটি ডাউনলোড করুন (pytz-2019.3.tar.gz) এ থেকে:

    https://pypi.org/simple/pytz/
  2. অনুলিপি করুন এবং এটি আপনার site_packagesপ্রকল্পের ডিরেক্টরিতে এক্সট্রাক্ট করুন

  3. সেন্টিমিটারে নিষ্ক্রিয় ফোল্ডারে যান এবং চালান:

    python setup.py install
  4. TIME_ZONE = 'Etc/GMT+2' বা দেশের নাম

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