2009-09-04 17 views
14

हम अपने जावा कोड में GregorianCalendar के साथ चल रहे हैं। हम अपने postgresql डेटाबेस में जीएमटी +0 समय के रूप में टाइमस्टैंप प्रकार कॉलम में जारी रखना चाहते हैं, लेकिन हमें यकीन नहीं है कि इसके बारे में कैसे जाना है। क्या फ़ील्ड टाइम स्टैम्प के साथ या बिना होनी चाहिए? एक समान टोकन द्वारा "वर्तमान" समय पोस्टग्रेस फ़ंक्शन को current_timestamp or localtimestamp का उपयोग करना चाहिए?मैं पोस्टग्रेस्क्ल में जीएमटी टाइम्स का उपयोग कैसे करूं?

+0

सीधे आपके प्रश्न से संबंधित नहीं है, लेकिन सिर्फ दिखाना चाहते थे कि आप http://joda-time.sourceforge.net/ जोडा समय से निपटने के लिए थोड़ा आसान है। :) http://joda-time.sourceforge.net/userguide.html#TimeZones –

+0

धन्यवाद, दुर्भाग्य से हमारे प्रोजेक्ट में पुस्तकालयों को जोड़ना बेहद मुश्किल है। – Adam

उत्तर

32

यहां प्रारंभ करें - खंड 8.5.3। प्रलेखन से "Time Zones"।

milen=> select CURRENT_TIMESTAMP; 
       now 
------------------------------- 
2009-09-05 01:21:37.595704+03 
(1 row) 

milen=> select LOCALTIMESTAMP; 
     timestamp 
---------------------------- 
2009-09-05 01:21:41.956355 
(1 row) 

यह जो उस समय एक और बात है: - पूर्व रिटर्न "समय क्षेत्र के साथ टाइमस्टैम्प" और बाद - "टाइमस्टैम्प"

CURRENT_TIMESTAMP और LOCALTIMESTAMP के बीच का अंतर प्रकार परिणाम की है जोन आप वर्तमान समय देखना चाहते हैं। इस मामले में डिफ़ॉल्ट समय क्षेत्र (जो कई तरीकों से सेट हो सकता है, ऊपर वर्णित अनुभाग में वर्णित सभी) महत्वपूर्ण है। इसके अलावा, आप एक प्रश्न में "AT TIME ZONE" इस्तेमाल कर सकते हैं "समय क्षेत्र" सेटिंग के साथ "नगण्य" बिना विशेष समय क्षेत्र में वर्तमान समय प्राप्त करने के लिए:

milen=> select CURRENT_TIMESTAMP AT TIME ZONE 'UTC'; 
      timezone 
---------------------------- 
2009-09-04 22:21:44.418236 
(1 row) 
+0

धन्यवाद, पृष्ठ को देखने के बाद अब मैं समय-समय पर या बिना फ़ील्ड के अंतर को समझता हूं, और हम बिना होंगे। हालांकि, localtimestamp और current_timestamp बार दोनों का उपयोग करते समय हमें स्थानीय समय मिल रहा है, जीएमटी नहीं – Adam

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