2012-05-07 9 views
7

मेरे पास DATETIME का एक स्तंभ है जो MySQL डेटाबेस में 2012-05-07 19:59:12 का मान है।getTimestamp() MySQL जेडीबीसी कनेक्टर में दो बार टाइमज़ोन कनवर्जन करता है?

Calendar cal = Calendar.getInstance(new SimpleTimeZone(0, "UTC")); 
Date date = resultSet.getTimestamp(1, cal); 
System.out.println(date); 

यह आउटपुट (CEST मेरे स्थानीय समय क्षेत्र है, जो 2 घंटे यूटीसी से आगे है):

Mon May 07 23:59:12 CEST 2012 
मैं यह सोचते हैं कि यह यूटीसी समय क्षेत्र में संग्रह किया गया है डीबी से मान प्राप्त करने के लिए कोशिश कर रहा हूँ,

लिए अपेक्षित मान है:

Mon May 07 21:59:12 CEST 2012 

मैं JDBC यूआरएल में इन तीन पैरामीटर उपयोग कर रहा हूँ (Europe/BerlinCEST के समान है):

012,
..&useGmtMillisForDatetimes=true&useTimezone=true&serverTimezone=Europe/Berlin 

क्या यह मेरा दोष है या कुछ जेडीबीसी ड्राइवर में अतिरिक्त रूप से कॉन्फ़िगर किया जाना चाहिए? मैं mysql:mysql-connector-java:5.1.20 का उपयोग कर रहा हूँ।

+0

मुझे लगता है कि आप कर रहे हैं कि यह एक थोड़ा और अधिक जटिल की तुलना में यह करने की जरूरत है। जेडीबीसी कैलेंडर के साथ टाइमस्टैम्प को पुनर्प्राप्त करने का समर्थन करता है जब डेटाबेस टाइमज़ोन का समर्थन नहीं करता है। MySQL करता है, तो यह अनावश्यक है। आप (शायद) jdbc url पर भी सभी कस्टम सेटिंग्स के बारे में भूल सकते हैं। बस GetDate() का उपयोग करें, और आपको java.util.Date मिलेगा, जो टाइमज़ोन स्वतंत्र है जब तक आप इसे किसी विशिष्ट टाइमज़ोन के साथ प्रारूपित नहीं करते। – GreyBeardedGeek

+0

ठीक है, यह इस प्रकार काम करता है: 'और उपयोग GmtMillisForDatetimes = true और useJDBCCompliantTimezoneShift = true और useLegacyDatetimeCode = false & useTimezone = true और serverTimezone = UTC', लेकिन आपके सुझाव के लिए धन्यवाद, मैं इसे – yegor256

उत्तर

12
इन JDBC URL params यह काम करता है के साथ

:

useGmtMillisForDatetimes=true 
useJDBCCompliantTimezoneShift=true 
useLegacyDate‌timeCode=false 
useTimezone=true 
serverTimezone=UTC 
+2

का उत्तर देने का प्रयास करूंगा, मेरे लिए पूरी तरह से काम किया। नोट: आपके पास 'उपयोगिता' और 'डेटाटाइमोड' के बीच दो (अदृश्य) 0x00 वर्ण हैं जिसका अर्थ है कि यह WONT काम करता है अगर कोई इसे किसी प्रॉपर्टी फ़ाइल में कॉपी करता है। मैंने यह किया और ट्रैक करना बहुत मुश्किल था। बस अगर कोई और कोशिश करता है। – choobablue

+0

मैंने पाठ को ठीक किया, धन्यवाद – yegor256

+0

अभी भी अदृश्य पात्र थे ... अब तय !! –

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