2012-02-02 13 views
5

मुझे चयनित घंटों और मिनटों को देशों के अलग-अलग समय क्षेत्रों में बदलने का एक मुद्दा है। मान लीजिए कि क्या मैं भारत में 10 बजे का चयन करता हूं तो मैं भारत में 10 बजे जानना चाहता हूं कि संयुक्त राज्य अमेरिका/न्यू यॉर्क और टोक्यो में क्या समय होगा। और इसके विपरीत।समय पिकर से समय के चयन पर विभिन्न समय क्षेत्र का समय प्राप्त करें

किसी भी मदद की सराहनीय है ... आप

+0

मुझे पता है मेरी समस्या वर्तमान समय परिवर्तित करने के लिए नहीं है, मेरी समस्या चयनित परिवर्तित 2 दिन bt नहीं im के लिए कोशिश कर रहा समय – Richa

+0

im में है परिणाम प्राप्त हो रहा है – Richa

+0

क्या मुझे पता है कि आप अपने मुद्दे को कैसे हल करते हैं। मुझे मिल रहा है! संयुक्त राज्य अमेरिका/न्यू यॉर्क उपकरणों में घंटे का अंतर। लेकिन अगर हम समय क्षेत्र को न्यूयॉर्क समय क्षेत्र में बदलते हैं तो यह काम करता है। न्यू यॉर्क में केवल डिवाइस का सामना करना पड़ रहा है! मेरे लिए घंटे का अंतर क्या मैं जान सकता हूं कि आप इस मुद्दे को कैसे हल करते हैं। – Nivedh

उत्तर

1

का उपयोग करके देखें Joda-Time library जांच org.joda.time.DateTimeZone class

Here उसी के लिए API दस्तावेज़ है।

0

वास्तव में समाधान मैं प्रदान करने के लिए जा रहा हूँ के बारे में सुनिश्चित नहीं हैं धन्यवाद, लेकिन मुझे लगता है कि आप इसे देख सकते हैं। जीएमटी (ग्रीनविच मीन टाइम) एक मानक है। मुझे लगता है कि आप इसे आधार के रूप में रख सकते हैं और वांछित समय की गणना कर सकते हैं। जीएमटी मानक भी आसानी से उपलब्ध है।

उदाहरण के लिए: Windows XP या Windows 7 जैसे ओएस को स्थापित करते समय, हम ड्रॉप डाउन मेनू से समय चुनते हैं। मेरा मुद्दा यह है कि इसे आधार के रूप में रखते हुए, आप एनवाई-यूएस और टोक्यो-जापान में समय क्षेत्र के बीच अंतर या इसके विपरीत चाहते हैं।

उम्मीद है कि इससे मदद मिलती है।

3

कृपया के लिए नीचे दिया sollution:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mma"); 
    TimeZone timezone = TimeZone.getDefault(); 
    TimeZone utcTimeZone = TimeZone.getTimeZone("UTC"); 
    Date d = new Date(); 
    sdf.setTimeZone(timezone); 
    String strtime = sdf.format(d); 
    Log.e("str time gmt ",strtime); 
    sdf.setTimeZone(utcTimeZone); 
    strtime = sdf.format(d); 
    Log.e("str time utc ",strtime); 

मुझे लगता है कि यह आपकी समस्या का समाधान होगा

+0

आपके उत्तर के अनुसार यूटीसी समय प्राप्त कर रहा है, वांछित क्षेत्र का समय नहीं, चयनित घंटे और मिनट – Richa

2

आप शायद Joda Time - Java date and time API उपयोग कर सकते हैं। आप Canonical ID Joda समय में परिभाषित पर निर्भर करता है DateTimeZone प्राप्त कर सकते हैं,

DateTimeZone zone = DateTimeZone.forID("Asia/Kolkata"); 

Joda समय एक पूरा list of Canonical ID जहां विहित आईडी के आधार पर समयक्षेत्र प्राप्त कर सकते हैं से है।

तो, आप इस क्षण में न्यूयॉर्क का स्थानीय समय प्राप्त करना चाहते हैं, तो आपको निम्न

// get current moment in default time zone 
    DateTime dt = new DateTime(); 
    // translate to New York local time 
    DateTime dtNewYork = dt.withZone(DateTimeZone.forID("America/New_York")); 

अधिक विचार हो रही के लिए क्या करना होगा आप उल्लेख कर सकते हैं Changing TimeZone

+0

से मुझे पता है कि मैं इसे समझने में सक्षम नहीं हूं !!!! – Richa

+1

इसका उपयोग करने में आपको किस समस्या का सामना करना पड़ रहा है? –

1

आप भी प्राप्त कर सकते हैं इसे का उपयोग, यहाँ कोई बाहरी एपीआई की जरूरत है

DateFormat format = new SimpleDateFormat("MMMMM d, yyyy, h:mm a"); 
TimeZone utc = TimeZone.getTimeZone("America/New_York"); 
System.out.println(utc.getID()); 
GregorianCalendar gc = new GregorianCalendar(utc); 
Date now = gc.getTime(); 
System.out.println(format.format(now)); 

आप इस +०१२३३१६७१८ के बारे में अधिक समय क्षेत्र देख सकते हैं

आउटपुट

America/New_York

दिसंबर 29, 2012 11:04

आप शहर का नाम पता नहीं है, तो आप भी यह के रूप में जोन नाम से उपयोग कर सकते हैं का पालन करें

DateFormat format = new SimpleDateFormat("MMMMM d, yyyy, h:mm a"); 
TimeZone cst = TimeZone.getTimeZone("US/Eastern"); 
System.out.println(cst.getID()); 
GregorianCalendar gc = new GregorianCalendar(cst); 
Date now = gc.getTime(); 
format.setTimeZone(cst); 
System.out.println(format.format(now)) 

आउटपुट

अमेरिका/पूर्वी

दिसंबर 29, 2012 12:38

संबंधित मुद्दे