मेरे पास केवल दिनांक स्ट्रिंग है, और मैं इसके द्वारा अन्य टाइमज़ोन में समय देखना चाहता हूं। तो मैं ऐसा क्या किया:दिनांक स्ट्रिंग द्वारा अन्य टाइमज़ोन का समय प्राप्त करें, परिणाम गलत है
String dateStr = "2014-05-15 16:14:58 PM";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
sdf.setTimeZone(TimeZone.getTimeZone("America/Denver"));
Date date = sdf.parse(dateStr);
System.out.println(date);
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
System.out.println(sdf1.format(date));
यह मेरे कंप्यूटर में वर्तमान समय क्षेत्र है:
परिणाम कोड चलाया गया था कि कि:
Fri May 16 06:14:58 CST 2014
2014-05-16 06:14:58 AM
परिणाम गलत है, मेरे कंप्यूटर में टाइमज़ोन को "अमेरिका/डेनवर" में बदलकर सही परिणाम मिला, और मैंने देखा कि:
America/Denver —— 2014-05-15 02:14:58 AM
मुझे नहीं पता कि यह क्यों पसंद है?
लेकिन अगर मैं एक तिथि नहीं एक तारीख स्ट्रिंग था, मुझे क्या करना है कि:
public static String getFormatedDateString(String _timeZone) {
TimeZone timeZone = null;
if (StringUtils.isEmpty(_timeZone)) {
timeZone = TimeZone.getDefault();
} else {
timeZone = TimeZone.getTimeZone(_timeZone);
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
sdf.setTimeZone(timeZone);
// TimeZone.setDefault(timeZone);
return sdf.format(new Date());
}
println ("अमेरिका/डेनवर -" + getFormatedDateString ("अमेरिका/डेनवर"));
परिणाम पसंद करती है कि:
------Asia/Shanghai------
2014-05-15 16:32:04 PM (current date)
America/Denver —— 2014-05-15 02:32:04 AM
यह परिणाम सही है।
तो मैं उलझन में था, मुझे समस्या नहीं मिल सका जब मेरे पास डेट स्ट्रिंग है और मैं अन्य टाइमज़ोन का समय जानना चाहता हूं। क्या कोई शरीर मेरी मदद कर सकता है?
धन्यवाद, PopoFibo –
@DigengTianhan आपका स्वागत है:
आउटपुट मैं बदल कोड (मेरी JVM के समय क्षेत्र IST जा रहा है) के साथ मिल – PopoFibo