সি # ডেটটাইম থেকে ইউটিসি সময় সময় পরিবর্তন না করে


124

প্রকৃত সময় পরিবর্তন না করে আমি কীভাবে একটি প্রিসিস্টিং ডেটটাইমটিকে ইউটিসি সময়ের সাথে রূপান্তর করব।

উদাহরণ:

DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm

আপনি পিএসটি-তে আছেন ? আপনি কীভাবে PSTমূল্য পাবেন?
কুইকিনেট

উত্তর:


207
6/1/2011 4:08:40 PM Local
6/1/2011 4:08:40 PM Utc

থেকে

DateTime dt = DateTime.Now;            
Console.WriteLine("{0} {1}", dt, dt.Kind);
DateTime ut = DateTime.SpecifyKind(dt, DateTimeKind.Utc);
Console.WriteLine("{0} {1}", ut, ut.Kind);

50

DateTime.SpecifyKindস্থির পদ্ধতিটি ব্যবহার করুন ।

নির্দিষ্ট ডেটটাইম হিসাবে একই সংখ্যক টিক্সযুক্ত একটি নতুন ডেটটাইম অবজেক্ট তৈরি করে, তবে স্থানীয় সময়, সমন্বিত ইউনিভার্সাল টাইম (ইউটিসি), বা না হয় নির্ধারিত তারিখটাইমকিন্ড মান দ্বারা নির্দেশিত হিসাবে মনোনীত করা হয়।

উদাহরণ:

DateTime dateTime = DateTime.Now;
DateTime other = DateTime.SpecifyKind(dateTime, DateTimeKind.Utc);

Console.WriteLine(dateTime + " " + dateTime.Kind); // 6/1/2011 4:14:54 PM Local
Console.WriteLine(other + " " + other.Kind);       // 6/1/2011 4:14:54 PM Utc

18

আপনি এর ওভারলোডেড কনস্ট্রাক্টর ব্যবহার করতে পারেন DateTime:

DateTime utcDateTime = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute, dateTime.Second, DateTimeKind.Utc);

0

আপনি এটি এইভাবে করতে পারেন:

DateTime utcDateTime = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute, dateTime.Second).ToUniversalTime();

এটি প্রত্যাশার মতো কাজ করতে পারে না। চেষ্টা করুন ... new DateTime(dateTime.Year, dateTime.Month, dateTime.dateTimeay, dateTime.Hour, dateTime.Minute, dateTime.Second).ToUniversalTime().ToString() বনাম DateTime.SpecifyKind(dateTime, DateTimeKind.Utc).ToString() আপনি দেখতে পাবেন যে আপনি বিভিন্ন ফলাফল পাবেন।
হোমার

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.