2016-03-21 10 views
8

मैं एक स्ट्रिंग के आधार पर दिनांक समय कैसे प्राप्त कर सकताConvert समय स्ट्रिंग

जैसे: अगर मैं mytime = "14:00"

है मैं तिथि के रूप में आज की तारीख के साथ एक DateTime वस्तु कैसे प्राप्त कर सकते हैं, जब तक कि वर्तमान समय पहले से ही 14:00:01, तो तारीख अगले दिन होना चाहिए।

+0

आप एक के लिए एक विशेष समय क्षेत्र को लक्षित कर रहे हैं, तो आप बंद समय क्षेत्र को लक्षित बेहतर हैं। एक विशिष्ट समय के बजाय। आपके आवेदन के आधार पर और यदि यह टाइमज़ोन फैलाता है तो लाइब्रेरी आपको टाइमज़ोन में बदलावों से बचाएगी और समय और तिथियों से निपटने में बहुत आसान होगी। –

उत्तर

8

चल रहा है यह एक सटीक प्रारूप के साथ एक DateTime पार्स करने के रूप में सरल है।

प्राप्त

var dateStr = "14:00"; 
var dateTime = DateTime.ParseExact(dateStr, "H:mm", null, System.Globalization.DateTimeStyles.None); 

साथ DateTime.ParseExact() (msdn link) विधि बस आप प्रारूप स्ट्रिंग आप DateTime struct वापस जाने के लिए अपने पार्स स्ट्रिंग के रूप में चाहते हैं पारित करने के लिए अनुमति देता है। अब Date इस स्ट्रिंग के पोशन को आज की तारीख में डिफॉल्ट किया जाएगा जब कोई दिनांक भाग प्रदान नहीं किया जाता है।

दूसरे भाग

मैं तिथि के रूप में आज की तारीख के साथ एक दिनांक समय वस्तु कैसे प्राप्त कर सकते हैं, जब तक कि वर्तमान समय पहले से ही 14:00:01, तो तारीख अगले दिन किया जाना चाहिए जवाब देने के लिए।

इस के रूप में हम जानते हैं कि DateTime.ParseExact आज की तारीख वापस आ जाएगी (जैसा कि हम एक तारीख हिस्सा आपूर्ति havevnt) हम DateTime.Now के लिए हमारी पार्स तारीख तुलना कर सकते हैं भी सरल है,। यदि DateTime.Now हमारी पार्स की गई तारीख से अधिक है तो हम 1 दिन हमारी पार्स तिथि पर जोड़ते हैं।

var dateStr = "14:00"; 

var now = DateTime.Now; 
var dateTime = DateTime.ParseExact(dateStr, "H:mm", null, System.Globalization.DateTimeStyles.None); 

if (now > dateTime) 
    dateTime = dateTime.AddDays(1); 
1

के लिए एक datetime निर्माता है

public DateTime(
    int year, 
    int month, 
    int day, 
    int hour, 
    int minute, 
    int second 
) 

तो फिर स्ट्रिंग पार्स घंटे, मिनट और सेकंड खोजने के लिए और Datetime.Now.Day द्वारा आपूर्ति की अन्य पैरामीटर को खिलाने कि के साथ इस निर्माता में करने के लिए और इतने पर।

2

आप DateTime.TryParse() का उपयोग कर सकते हैं: जो दिनांक और समय के निर्दिष्ट स्ट्रिंग प्रस्तुति को DateTime समकक्ष में परिवर्तित करेगा और यह मान देगा कि रूपांतरण सफल हुआ है या नहीं।

string inTime="14:00"; 
DateTime d; 

if(DateTime.TryParse(inTime,out d)) 
{ 
    Console.WriteLine("DateTime : " + d.ToString("dd-MM-yyyy HH:mm:SS")); 
} 

उदाहरण here

1

मुझे लगता है कि आप इस तरह से कुछ करना चाहता हूँ:

string myTime = "14:00";    
var v = myTime.Split(":".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); 
DateTime obj = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, int.Parse(v[0]), int.Parse(v[1]), DateTime.Now.Second); 
संबंधित मुद्दे