Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 日期时间格式错误_C#_C# 4.0 - Fatal编程技术网

C# 日期时间格式错误

C# 日期时间格式错误,c#,c#-4.0,C#,C# 4.0,在这里,我将开始日期和结束日期作为日期时间&开始时间,结束时间作为时间。我需要从StartDate和EndDate更改时间部分。然后将StartTime和EndTime添加到它。这是我的尝试。但在最后一部分,我看到了错误 错误是:字符串未被识别为有效的日期时间 string StartTime=“”; 字符串EndTime=“”; DateTime StartDate=Convert.ToDateTime(RadDatePickerStart.SelectedDate); DateTime En

在这里,我将
开始日期
结束日期
作为日期时间&
开始时间
结束时间
作为时间。我需要从
StartDate
EndDate
更改时间部分。然后将
StartTime
EndTime
添加到它。这是我的尝试。但在最后一部分,我看到了错误

错误是:字符串未被识别为有效的日期时间

string StartTime=“”;
字符串EndTime=“”;
DateTime StartDate=Convert.ToDateTime(RadDatePickerStart.SelectedDate);
DateTime EndDate=Convert.ToDateTime(RadDatePickerEnd.SelectedDate);
if(RadTimePickerStart.SelectedDate!=null)
StartTime=RadTimePickerStart.SelectedDate.Value.ToString(“HH:mm”);
if(radtimepickernd.SelectedDate!=null)
EndTime=RadTimePickerEnd.SelectedDate.Value.ToString(“HH:mm”);
DateTime NewsStartDate=Convert.ToDateTime(StartDate+“”+StartTime) 在C#中,对于大多数系统类型,+运算符重载,只需将它们相加即可。因此,您还应该从选择器获取日期对象,而不是将其转换为字符串

编辑:现在,最终日期时间将是添加RadDatePicker的日期和RadTimePicker的时间的结果

            DateTime StartDate = Convert.ToDateTime(RadDatePickerStart.SelectedDate);
            DateTime EndDate = Convert.ToDateTime(RadDatePickerEnd.SelectedDate);

            TimeSpan StartTime, EndTime;

            if (RadTimePickerStart.SelectedDate != null)
                StartTime = RadTimePickerStart.SelectedDate.Value.TimeOfDay;

            if (RadTimePickerEnd.SelectedDate != null)
                EndTime = RadTimePickerEnd.SelectedDate.Value.TimeOfDay;

            RadDatePickerStart.SelectedDate = StartDate + StartTime;
            RadDatePickerEnd.SelectedDate = EndDate + EndTime;
编辑:我不知道如何设置选择器的日期时间,您可能需要调整这部分代码。

在C中,+运算符对于大多数系统类型是重载的,只需将它们添加在一起即可。因此,您还应该从选择器获取日期对象,而不是将其转换为字符串

编辑:现在,最终日期时间将是添加RadDatePicker的日期和RadTimePicker的时间的结果

            DateTime StartDate = Convert.ToDateTime(RadDatePickerStart.SelectedDate);
            DateTime EndDate = Convert.ToDateTime(RadDatePickerEnd.SelectedDate);

            TimeSpan StartTime, EndTime;

            if (RadTimePickerStart.SelectedDate != null)
                StartTime = RadTimePickerStart.SelectedDate.Value.TimeOfDay;

            if (RadTimePickerEnd.SelectedDate != null)
                EndTime = RadTimePickerEnd.SelectedDate.Value.TimeOfDay;

            RadDatePickerStart.SelectedDate = StartDate + StartTime;
            RadDatePickerEnd.SelectedDate = EndDate + EndTime;

编辑:我不知道如何设置选择器的日期时间,您可能需要调整这部分代码。

不要使用
Convert.ToDateTime
,而要使用
DateTime.TryParseExact
,并将
字符串
作为包含日期和时间的字符串转换为日期

此示例代码片段将帮助您

DateTime dateasof;
bool result = DateTime.TryParseExact("08/06/2013 13:50", "MM/dd/yyyy HH:MM", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateasof);
if (result)
    return dateasof;

不要使用
Convert.ToDateTime
而使用
DateTime.TryParseExact
,并将
字符串
作为包含日期和时间的后续转换为日期

此示例代码片段将帮助您

DateTime dateasof;
bool result = DateTime.TryParseExact("08/06/2013 13:50", "MM/dd/yyyy HH:MM", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateasof);
if (result)
    return dateasof;
试试下面

DateTime StartDate = RadDatePickerStart.SelectedDate.Value; 
DateTime EndDate = RadDatePickerEnd.SelectedDate.Value;

if (RadTimePickerStart.SelectedDate != null)
            StartDate = StartDate.Date.Add(RadTimePickerStart.SelectedDate.Value.TimeOfDay);
if (RadTimePickerEnd.SelectedDate != null)
            EndDate =  EndDate.Date.Add(RadTimePickerEnd.SelectedDate.Value.TimeOfDay);
试试下面

DateTime StartDate = RadDatePickerStart.SelectedDate.Value; 
DateTime EndDate = RadDatePickerEnd.SelectedDate.Value;

if (RadTimePickerStart.SelectedDate != null)
            StartDate = StartDate.Date.Add(RadTimePickerStart.SelectedDate.Value.TimeOfDay);
if (RadTimePickerEnd.SelectedDate != null)
            EndDate =  EndDate.Date.Add(RadTimePickerEnd.SelectedDate.Value.TimeOfDay);

我想主要的问题出现在连接的地方

DateTime NewStartDate = Convert.ToDateTime(StartDate + " " + StartTime);<-- In here shows the error

DateTime NewStartDate=Convert.ToDateTime(StartDate+“”+StartTime) 我想主要的问题出现在连接的地方

DateTime NewStartDate = Convert.ToDateTime(StartDate + " " + StartTime);<-- In here shows the error

DateTime NewStartDate=Convert.ToDateTime(StartDate+“”+StartTime);那么,您是否已经验证了
StartDate+“”+StartTime
的结果是什么值?所选的
SelectedDate
的值是什么?完全不清楚您为什么需要在这里执行字符串操作。如果你能澄清你的问题,那会很有帮助。我会使用
DateTime.TimeOfDay
属性,而不是
string
,这将导致
TimeSpan
对象。@Johan:“否”是什么意思?没有什么?你的问题不清楚,而且仍然不清楚。你应该编辑它使它更清晰,这样更多的人将能够帮助你。看起来您只有两个输入-
RadTimePickerStart
RadTimePickerEnd
-但您试图将它们当作有四个输入(两个日期,两次)来使用。您是否验证了
StartDate+的结果值+StartTime
?SelectedDate的值是多少?
?完全不清楚为什么需要在此处执行字符串操作。如果你能澄清你的问题,那会很有帮助。我会使用
DateTime.TimeOfDay
属性,而不是
string
,这将导致
TimeSpan
对象。@Johan:“否”是什么意思?没有什么?你的问题不清楚,而且仍然不清楚。你应该编辑它使它更清晰,这样更多的人将能够帮助你。看起来您只有两个输入-
RadTimePickerStart
RadTimePickerEnd
,但您试图使用它们,就像有四个输入一样(两个日期,两个时间).不。我只想更改日期时间选择器时间部分并向其添加时间选择器时间。不。我只想更改日期时间选择器时间部分并向其添加时间选择器时间。