2012-12-16 32 views
5

और आइडिया क्यों वर्ष के रूप में दिखाई देता है? किसी भी समय DateTime कोई स्पष्ट संस्कृति निर्दिष्ट के साथ एक स्ट्रिंग में बदल जाती है, यह वर्तमान संस्कृति के कैलेंडर प्रणाली का उपयोग करेगा -डेटटाइम.Now.ToUniversalTime() गलत वर्ष

enter image description here

साइट के संस्कृति थाई

+3

एक नोट के रूप में: का प्रयोग करें '' बजाय DateTime.Now.ToUniversalTime की DateTime.UtcNow'() '। यह तेज़ और साफ है। – CodesInChaos

उत्तर

7

हाँ है। हालांकि, DateTime घटक स्वयं भी ग्रेगोरियन कैलेंडर को प्रतिबिंबित करते हैं।

आप 2555 दिखाई देगा, जब का उपयोग करें: मूल रूप से

int thaiYear = new ThaiBuddhistCalendar().GetYear(DateTime.Now); 

, आप संस्कृति विशिष्ट तारीख की जानकारी प्रोग्राम के रूप में प्राप्त करना चाहते हैं, तो आप एक System.Globalization.Calendar उपयोग करने के लिए की जरूरत है। किसी दिनांक को स्वरूपित करते समय, सुनिश्चित करें कि आप उस कैलेंडर के लिए सही संस्कृति निर्दिष्ट करते हैं जिसका आप उपयोग करना चाहते हैं।

+1

लेकिन इसमें दो अलग-अलग मान क्यों हैं, '2555 और 2012'? क्या वे दोनों 2555 या समान नहीं होना चाहिए? – Kaf

+2

@ कैफ: नहीं, क्योंकि जैसा कि मैंने अपने उत्तर की दूसरी वाक्य में कहा था, 'डेटटाइम' हमेशा ग्रेगोरियन कैलेंडर के अनुसार मूल्यों की रिपोर्ट करता है। एक 'डेटटाइम' मान "पता नहीं" करता है कि किस कैलेंडर में इसका अर्थ है, इसलिए यह हमेशा ग्रेगोरियन मानता है। –

+1

@ कफ रूपांतरण स्ट्रिंग वर्तमान कैलेंडर का उपयोग करता है, लेकिन 'वर्ष' जैसी गुण नहीं है। – CodesInChaos

1

थाई का एक अलग कैलेंडर है।

मुझे चलो बोली:

There is a 543 years difference between the Buddhist calendar and the Gregorian calendar. Year 2012 in Europe is year 2555 in Thailand.

से http://www.thaiworldview.com/feast/feast.htm