मेरे पास एक asp.net-mvc वेबसाइट है जिसे मैंने लिया और वहां एक पृष्ठ पृष्ठ है जहां लोग जानकारी और समय (स्थानीय टाइमज़ोन समेत) दर्ज करते हैं। डेटाबेस एक प्रारंभ समय, एक अंत समय और एक समय क्षेत्र जारी है क्योंकि यह मेरे लिए थोड़ा सा झटकेदार लगता है। यहां पहुंचने के लिए कोड सूची चुनने के लिए है से:मेरे डीबी में टाइमज़ोन जानकारी स्टोर करने का सबसे अच्छा तरीका क्या है?
static private IEnumerable<SelectListItem> GetTimeZones(string selected)
{
var timeZoneNames = TimeZoneInfo.GetSystemTimeZones()
.Where(tz => tz.DisplayName.Contains("London")
|| tz.DisplayName.Contains("Hong Kong")
|| tz.DisplayName.Contains("Mumbai")
|| tz.DisplayName.Contains("Eastern Time"))
.ConvertAll(tz => tz.DisplayName).ToList();
var items = new List<SelectListItem>();
foreach (var item in timeZoneNames)
{
var slItem = new SelectListItem();
slItem.Text = item;
slItem.Value = item;
slItem.Selected = item == selected;
items.Add(slItem);
}
return items;
}
तो अपने बस संपूर्ण स्ट्रिंग कि TimeZoneInfo.GetSystemTimeZones()
वहाँ इस दृष्टिकोण के साथ किसी भी खामियां हैं से दिया जाता है भंडारण? मैं थोड़ा चिंतित हूं reading here कि यह स्थानीय रूप से मशीन से आता है जैसे विभिन्न मशीनों की अलग-अलग सेटिंग्स होती हैं। इसके अलावा, यह पता लगाने की कोशिश कर रहा है कि क्या सब कुछ यूटीसी या जीएमटी, आदि के रूप में सूचीबद्ध है। । कोई बेहतर सुझाव? उदाहरण के लिए, क्या मुझे वेबसाइट पर यूटीसी में रूपांतरण करना चाहिए और डेटाबेस में हर समय सामान्यीकृत करना चाहिए?
SQL सर्वर का कौन सा संस्करण? एसक्यूएल सर्वर 2008 ने ['DATETIMEOFFSET'] पेश किया [http://msdn.microsoft.com/en-us/library/bb630289 (v = sql.100) .aspx)। मुझे अभी तक इसका उपयोग नहीं मिला है (मैं एक बार उपयोगकर्ता के समय क्षेत्र को स्टोर करता हूं, तारीख को यूटीसी के रूप में संग्रहीत करता हूं, और प्रति उपयोगकर्ता समायोजित करता हूं), लेकिन अन्य दावा करते हैं कि इसका उपयोग इस उद्देश्य के लिए किया जा सकता है। –
डीबी में यूटीसी के रूप में दिनांक समय संग्रहीत करने के लिए एक नीचे की तरफ है। डीबीटी पर डीएसटी के लिए आप कैसे खाते हैं? टाइम ज़ोन और डीएसटी के संबंध में स्थानीय समय पर डेटटाइम या डेटटाइम 2 को कनवर्ट करने का कोई तरीका नहीं है। यदि आप ऑफसेट पास करते हैं, तो आप अभी भी एक दिन डीएसटी में होने के कारण बंद हो सकते हैं और एक नहीं। उदाहरण 3/10/2012 2:00:00 ईएसटी 3/09/2012 20:00:00 यूटीसी है लेकिन 3/13/2012 2:00:00 ईएसटी 3/12/2012 19:00:00 यूटीसी है। मूल रूप से -4 और -5 का ऑफसेट। तो यूटीसी को स्थानीय में बदलने के लिए आप अपने एसपी -4 या -5 में किस ऑफ़सेट में जाते हैं? किसी भी तरह से गलत है। – aBetterGamer