मैं चाहता था कि मेरे आवेदन में केवल एक TimeZone
ऑब्जेक्ट है जिसका उपयोग कई स्थानों से SimpleDateFormat
और Calendar
ऑब्जेक्ट्स द्वारा किया जाएगा। यह हमेशा TimeZone.getTimeZone(ID)
करने से बचने के लिए है।जावा का टाइमज़ोन थ्रेड-सुरक्षित है?
मुझे पता है SimpleDateFormat
और Calendar
कक्षाएं धागे सुरक्षित नहीं हैं, इसलिए मैं हमेशा एक नए धागे को नए उदाहरण बनाने के लिए कॉन्फ़िगर करता हूं। लेकिन TimeZone
के बारे में क्या? यह मुझे स्पष्ट नहीं है कि मैं निम्नलिखित सुरक्षित रूप से कर सकता हूं:
final TimeZone tz = TimeZone.getTimeZone("GMT");
...
//Thread 1.
Thread t1 = new Thread(Runnable(){
public void run()
{
Calendar cal = Calendar.getInstance(tz);
...
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.setTimeZone(tz);
...
}
});
t1.start();
...
//Thread 2.
Thread t2 = new Thread(Runnable(){
public void run()
{
Calendar cal = Calendar.getInstance(tz);
...
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.setTimeZone(tz);
...
}
});
t2.start();
...
धन्यवाद!
+1: जावाडाइम जावा में दिनांक/समय करने का तरीका है। – BalusC
मैंने टाइमज़ोन.getDefault() को बहु-थ्रेडेड वातावरण में अक्सर लटका दिया है। – Martin