আমি একটি বোতামে ক্লিক করার সময় অ্যান্ড্রয়েড মোবাইল থেকে সময় অঞ্চল পেতে চাই।
আমি একটি বোতামে ক্লিক করার সময় অ্যান্ড্রয়েড মোবাইল থেকে সময় অঞ্চল পেতে চাই।
উত্তর:
আপনি কি ব্যবহার করার চেষ্টা করেছেন TimeZone.getDefault()
:
বেশিরভাগ অ্যাপ্লিকেশনগুলি টাইমজোন.জেটডিফল্ট () ব্যবহার করবে যা প্রোগ্রামটি যে অঞ্চলের চলমান সময় অঞ্চলের উপর ভিত্তি করে একটি সময় অঞ্চল দেয়।
তথ্যসূত্র: http://developer.android.com/references/java/util/TimeZone.html
DateTimeZone.forTimeZone(TimeZone.getDefault());
TimeZone tz = TimeZone.getDefault();
System.out.println("TimeZone "+tz.getDisplayName(false, TimeZone.SHORT)+" Timezon id :: " +tz.getID());
আউটপুট:
টাইমজোন GMT + 09: 30 টাইমজোন আইডি :: অস্ট্রেলিয়া / ডারউইন
সম্পাদনা: কেস সংশোধন করা হয়েছে
আমার প্রয়োজন অফসেট যে না শুধুমাত্র অন্তর্ভুক্ত দিনের আলোর সঞ্চয়ী সময় কিন্তু একটি হিসাবে numerial । কেউ কোডটির সন্ধানের ক্ষেত্রে আমি কোডটি ব্যবহার করেছি এটি এখানে।
আমি "3.5" (3:30 ') এর একটি প্রতিক্রিয়া পেয়েছি যা শীতকালে ইরানের তেহরানে এবং গ্রীষ্মের জন্য "4.5" (4:30') প্রত্যাশা করব ।
আমার এটি স্ট্রিং হিসাবেও প্রয়োজন ছিল যাতে এটি এটি একটি সার্ভারে পোস্ট করতে পারি যাতে আপনার শেষ লাইনের প্রয়োজন নাও হতে পারে।
কারেন্ট সময় অঞ্চল পাওয়ার জন্য:
TimeZone tz = TimeZone.getDefault();
Date now = new Date();
//Import part : x.0 for double number
double offsetFromUtc = tz.getOffset(now.getTime()) / 3600000.0;
String m2tTimeZoneIs = Double.parseDouble(offsetFromUtc);
এই কোডটি ব্যবহার করে দেখুন-
Calendar cal = Calendar.getInstance();
TimeZone tz = cal.getTimeZone();
এটি ব্যবহারকারীর নির্বাচিত টাইমজোনটি ফিরিয়ে দেবে।
Calendar
জন্য একটি অবজেক্ট তৈরি করা একটি বাজে কথা। এই ধরণের অবজেক্ট তৈরি করা ব্যয়বহুল। TimeZone.getDefault()
এটি পাওয়ার উপযুক্ত উপায়।
সিম্পল ডেট ফরম্যাটের সর্বাধিক সলিউশন: সিম্পলডেট ফরম্যাট ("ZZZZZ"):
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"),
Locale.getDefault());
Date currentLocalTime = calendar.getTime();
DateFormat date = new SimpleDateFormat("ZZZZZ",Locale.getDefault());
String localTime = date.format(currentLocalTime);
System.out.println(localTime+ " TimeZone " );
==> আউটপুট: +05: 30
Http://developer.android.com/references/android/text/format/Time.html অনুসারে ডিভাইসের বর্তমান টাইমজোনটি পুনরুদ্ধার করতে আপনার টাইম.জেটকন্ট্রেন্টটাইমজোন () ব্যবহার করা উচিত।
আধুনিক উত্তর:
ZoneId zone = ZoneId.systemDefault();
System.out.println(zone);
যখন আমি অস্ট্রেলিয়া / সিডনি টাইম জোনে এই স্নিপেট চালাতাম, আউটপুটটি হুবহু:
Australia/Sydney
আপনি যদি গ্রীষ্মের সময় (ডিএসটি) সচেতন সময় অঞ্চলের নাম বা সংক্ষিপ্ত বিবরণ চান:
DateTimeFormatter longTimeZoneFormatter = DateTimeFormatter.ofPattern("zzzz", Locale.getDefault());
String longTz = ZonedDateTime.now(zone).format(longTimeZoneFormatter);
System.out.println(longTz);
DateTimeFormatter shortTimeZoneFormatter = DateTimeFormatter.ofPattern("zzz", Locale.getDefault());
String shortTz = ZonedDateTime.now(zone).format(shortTimeZoneFormatter);
System.out.println(shortTz);
Eastern Summer Time (New South Wales) EST
TimeZone
অন্যান্য উত্তর অধিকাংশ ব্যবহৃত বর্গ কি আমরা যখন প্রশ্ন 2011 সালে জিজ্ঞাসা করা হল যদিও এটি দুর্বল পরিকল্পনা করা হয়েছিল ছিল, ছিল। আজ এটি দীর্ঘকালীন, এবং আমি প্রস্তাব দিচ্ছি যে এর পরিবর্তে আমরা জাভা.টাইম, 2014 এর মধ্যে প্রকাশিত আধুনিক জাভা তারিখ এবং সময় এপিআই ব্যবহার করব।
java.Time পুরানো এবং নতুন উভয় Android ডিভাইসগুলিতে দুর্দান্তভাবে কাজ করে। এটির জন্য কমপক্ষে জাভা 6 প্রয়োজন ।
org.threeten.bp
সাব-প্যাকেজগুলি সহ আপনি তারিখ এবং সময় ক্লাসগুলি আমদানি করেছেন তা নিশ্চিত করুন ।java.time
প্রথম বর্ণিত হয়েছিল describedjava.time
জাভা 6 এবং 7 (জেএসআর -310 এর জন্য থ্রিটেন) এর ব্যাকপোর্ট।এপিআই 26 এবং উচ্চতর ডিভাইসগুলির জন্য, আপনি এটি এটি পেতে পারেন:
ZonedDateTime.now().getZone().toString();
এখানে সমস্ত উত্তর ডেটলাইট প্যারামিটারটিকে মিথ্যা হিসাবে সেট করার পরামর্শ দেয় । এটি বছরের অনেক সময় অনুসারে সংক্ষিপ্ত নাম পরিবর্তন করে এমন অনেক সময় অঞ্চলগুলির জন্য এটি ভুল (উদাহরণস্বরূপ EST বনাম EDT)।
নীচের সমাধানটি আপনাকে সময় অঞ্চলের জন্য বর্তমান তারিখ অনুসারে সঠিক সংক্ষেপণ দেবে।
val tz = TimeZone.getDefault()
val isDaylite = tz.inDaylightTime(Date())
val timezone = tz.getDisplayName(isDaylite, TimeZone.SHORT)
TimeZone
শ্রেণী দুর্বল পরিকল্পিত এবং দীর্ঘ পুরানো হয়েছে।