2012-05-15 17 views
12
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); 
java.util.Date fromDate = cal.getTime(); 
System.out.println(fromDate); 

पर स्थानीय तिथि को कैसे परिवर्तित करें उपरोक्त कोड जीएमटी में तारीख मुद्रित नहीं करता है, बल्कि स्थानीय टाइमज़ोन में प्रिंट करता है। मैं आज की तारीख से एक जीएमटी बराबर तारीख कैसे मिलता है (यह मानते हुए कि कार्यक्रम जापान या SFO में चला सकते हैं)जीएमटी

उत्तर

20

कैसे इस बारे में -

public static void main(String[] args) throws IOException { 
    Test test=new Test(); 
    Date fromDate = Calendar.getInstance().getTime(); 
    System.out.println("UTC Time - "+fromDate); 
    System.out.println("GMT Time - "+test.cvtToGmt(fromDate)); 
} 
private Date cvtToGmt(Date date){ 
    TimeZone tz = TimeZone.getDefault(); 
    Date ret = new Date(date.getTime() - tz.getRawOffset()); 

    // if we are now in DST, back off by the delta. Note that we are checking the GMT date, this is the KEY. 
    if (tz.inDaylightTime(ret)){ 
     Date dstDate = new Date(ret.getTime() - tz.getDSTSavings()); 

     // check to make sure we have not crossed back into standard time 
     // this happens when we are on the cusp of DST (7pm the day before the change for PDT) 
     if (tz.inDaylightTime(dstDate)){ 
      ret = dstDate; 
     } 
    } 
    return ret; 
} 

परीक्षण परिणाम:
यूटीसी समय - मंगल मई 15 16:24:14 IST 2012
GMT समय - मंगल मई 15 10:54:14 IST 2012

+0

में इसे कैसे रखें, आपको बहुत धन्यवाद। यह मेरी मदद करता है –

+0

आपका स्वागत है @ हाइडरएली :) –

15
DateFormat gmtFormat = new SimpleDateFormat(); 
TimeZone gmtTime = TimeZone.getTimeZone("GMT"); 
gmtFormat.setTimeZone(gmtTime); 
System.out.println("Current DateTime in GMT : " + gmtFormat.format(new Date())); 

अधिक आम तौर पर इस तरह से


आप किसी भी (वैध) समय क्षेत्र में परिवर्तित कर सकते हैं

देखें

+1

gmtFormat.format (नई तिथि()) वापसी प्रकार स्ट्रिंग है। लेकिन मैं तारीख चाहता हूं। –

+1

आप दिनांक उदाहरण –

+0

बनाने के लिए स्ट्रिंग को पार्स() 'कर सकते हैं जैसे ही आप पार्स करते हैं, यह इसे आपके स्थानीय टाइमज़ोन प्रारूप में वापस लाता है। मेरे मामले में, यह इसे वापस आईएसटी में बदल देता है। जीएमटी – user2531799

1

इस तरह की SimpleDateFormat dateFormatGmt = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss"); dateFormatGmt.setTimeZone(TimeZone.getTimeZone("GMT"));?

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