Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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# 如何将datetime转换为我从客户端获得的输出_C# - Fatal编程技术网

C# 如何将datetime转换为我从客户端获得的输出

C# 如何将datetime转换为我从客户端获得的输出,c#,C#,我有一个变量作为属性,如下所示: DateTime? something; something = Convert.ToDateTime(d1); 其中,d1='2020年4月20日下午12:50' 我得到一个运行时错误: 字符串未被识别为有效的datetime 然后我尝试了以下代码: something = DateTime.TryParseExact(d1, "MM/dd/yyyy HH:mm tt", null); 并获取编译时错误: 方法“TryParseEx

我有一个变量作为属性,如下所示:

DateTime? something;
something  = Convert.ToDateTime(d1);
其中,
d1='2020年4月20日下午12:50'

我得到一个运行时错误:

字符串未被识别为有效的
datetime

然后我尝试了以下代码:

something  = DateTime.TryParseExact(d1, "MM/dd/yyyy HH:mm tt", null);
并获取编译时错误:

方法“TryParseExact”不重载3个参数

然后我也试着像下面那样转换它

something  = DateTime.TryParseExact(d1, "MM/dd/yyyy HH:mm tt", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime dt);
并得到另一个编译时错误:

无法将类型
bool
隐式转换为
System.DateTime?

如何将
nullable datetime
转换为get
datetime
格式


TryParseExact返回一个bool,yout datetime对象是dt

public static void Main()
    {
        string d1 = "04/20/2020 12:50 PM";

        var result  = DateTime.TryParseExact(d1, "MM/dd/yyyy HH:mm tt", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime dt);

        Console.WriteLine(dt);

    }

参数

s String包含要转换的日期和时间的字符串

格式字符串s的所需格式

provider IFormatProvider提供特定于区域性的对象 格式化有关s的信息

样式DateTimeStyles一个或多个枚举的按位组合 指示s的允许格式的值

结果 DateTime此方法返回时,包含DateTime值 相当于s中包含的日期和时间,如果转换为 已成功,如果转换失败,则返回MinValue。转换失败 如果s或format参数为null、为空字符串,或 不包含与模式对应的日期和时间 以格式指定。此参数在未初始化的情况下传递

如果s已成功转换,则返回布尔值true;否则 错

异常参数异常样式不是有效的DateTimeStyles 价值观

-或-

样式包含无效的DateTimeStyles值组合(对于 例如,假设本地和假设通用)

因此,我们需要检查成功或失败,并处理它

DateTime? something;
if(DateTime.TryParseExact(d1, "MM/dd/yyyy HH:mm tt", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime dt))
    something = dt;
else
    something = null;

这是
TryParseExact

publicstaticvoidmain()
{
字符串d1=“04/20/2020 12:50 PM”;
如果(DateTime.TryParseExact(d1,“MM/dd/yyyy HH:MM tt”,
CultureInfo.InvariantCulture,datetimestyle.None,out DateTime dt);
Console.WriteLine(“日期-时间确定:+dt”);
其他的
Console.WriteLine(“无效日期时间:+d1”);
}

See这是否回答了您的问题@Hamid Reza Mohammadi It’s not working…表示3参数化方法不可用配置错误描述:处理此请求所需的配置文件时出错。请查看下面的特定错误详细信息,并适当修改配置文件。分析器错误消息:找不到CodeDom提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider,Microsoft.CodeDom.Providers.DotNetCompilerPlatform,版本=1.0.0.0,区域性=neutral,PublicKeyToken=31bf3856ad364e35”。还有2行long@HamidReza Mohammadi一世更新了图像,正在解决错误,但我不希望得到的是..根据2020年4月20日下午12:50,如果获取错误,则此格式为。。在dt 01-01-0001 00:00中:00@abbasahmed
DateTime
是struct,具有默认值。因此,如果此方法失败,
结果
参数值为{1/1/0001 12:00:00 AM}。您必须根据需要处理此函数的成功或失败。那么如何将其保存在数据库中?只需删除整个
system.codedom
部分即可。你是手工编译代码的吗?@abbasahmed好极了。在应用程序中找到web.config并删除此文件setting@abbasahmed右键单击解决方案,然后单击重建。或者在build菜单中执行同样的操作,以便进行检查
DateTime? something;
if(DateTime.TryParseExact(d1, "MM/dd/yyyy HH:mm tt", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime dt))
    something = dt;
else
    something = null;