Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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语言将dd/mm/yyyy字符串转换为yyyy-dd-mm-DateTime#_C#_Asp.net_Linq - Fatal编程技术网

C# 用c语言将dd/mm/yyyy字符串转换为yyyy-dd-mm-DateTime#

C# 用c语言将dd/mm/yyyy字符串转换为yyyy-dd-mm-DateTime#,c#,asp.net,linq,C#,Asp.net,Linq,如何将2019年5月13日(dd/mm/yyyy)字符串转换为c#中2019-13-05(yyyy-dd-mm)日期时间数据类型,sql Server需要yyyy-dd-mm格式的数据类型 string dateTime = "05/13/2019"; if (animalAdoption.AdoptionId != 0) { AnimalsAndBirdsAdoption animalsAndBirdsAdoption = new AnimalsAndBirdsAdoption()

如何将2019年5月13日(dd/mm/yyyy)字符串转换为c#中2019-13-05(yyyy-dd-mm)日期时间数据类型,sql Server需要yyyy-dd-mm格式的数据类型

string dateTime = "05/13/2019";

if (animalAdoption.AdoptionId != 0)
{
    AnimalsAndBirdsAdoption animalsAndBirdsAdoption = new AnimalsAndBirdsAdoption()
    {
        AnimalsAndBirdsId = animalAdoption.AnimalId,
        DonarDetailsId = userId,
        Term = model.Term,
        PeriodOfAdoption = dateTime,
        isActive = true,
        Amount = animalAdoption.amount
    };
    if (context.AnimalsAndBirdsAdoptions.Any(e => e.Id == animalAdoption.AdoptionId))
    {
        context.AnimalsAndBirdsAdoptions.Attach(animalsAndBirdsAdoption);
    }
    else
    {
        context.AnimalsAndBirdsAdoptions.Add(animalsAndBirdsAdoption);
    }
}

我得到的输出将Periodof应用的数据类型更改为System.DateTime类型

然后可以使用DateTime构造函数初始化属性,该构造函数有许多重载

如果您的字符串格式始终为yyyy dd mm格式,则基于:“2019-13-05” 您可以使用
.Split('-')
字符串函数提取年份、月份和日期,或者如果格式为“2019/13/05”,则可以在“/”上进行拆分,例如
.Split('/')

然后,您可以像这样使用构造函数创建
DateTime
对象(您可以在此处查看它们):

构造函数

public DateTime (int year, int month, int day);
PeriodOfAdoption = new DateTime(2019, 5, 13)
初始化

public DateTime (int year, int month, int day);
PeriodOfAdoption = new DateTime(2019, 5, 13)
所以把它放在一起:

var dateTime = '2019/13/05';
var dateParts = dateTime.Split('/');
PeriodOfAdoption = new DateTime(Int32.parse(dateParts[0]), Int32.parse(dateParts[1]), Int32.parse(dateParts[2]));
public string ToBigEndianString(string ukDate)
{
    DateTime? d = ToDateTime(ukDate);
    return ToBigEndianString(d);
}

如果您在c端需要一个
字符串
,这在c端非常简单,并且在线有许多示例

您可以使用以下示例和所需的格式来完成:

string dateTime = "13/05/2019";
var splittedDateTime = dateTime.Split('/');
DateTime myDate = new DateTime(int.Parse(splittedDateTime[2]), int.Parse(splittedDateTime[1]), int.Parse(splittedDateTime[0]));
string dateTime = "05/13/2019";

CultureInfo provider = CultureInfo.InvariantCulture;  
// It throws Argument null exception  
DateTime dateTime10 = DateTime.ParseExact(dateTime, "yyyy/dd/mm", provider);  

将英国日期字符串转换为日期时间的步骤

public DateTime? ToDateTime(string text)
{
    DateTime? returnValue = null;
    System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("en-GB");
    DateTime d = new DateTime();
    if(DateTime.TryParse(text, cultureInfo, System.Globalization.DateTimeStyles.None, out d))
    {
        returnValue = d;
    }
    return returnValue;
}
要将日期时间转换为字符串yyyy MM dd,请执行以下操作:

public string ToBigEndianString(DateTime? date)
{
    string returnValue = null;
    if(date != null)
    {
        returnValue = date.Value.ToString("yyyy-MM-dd");
    }
    return returnValue;
}
然后你可以把它们放在一起:

var dateTime = '2019/13/05';
var dateParts = dateTime.Split('/');
PeriodOfAdoption = new DateTime(Int32.parse(dateParts[0]), Int32.parse(dateParts[1]), Int32.parse(dateParts[2]));
public string ToBigEndianString(string ukDate)
{
    DateTime? d = ToDateTime(ukDate);
    return ToBigEndianString(d);
}
但是您可以将日期时间传递给SQL存储过程。

2019年5月13日
as
dd/mm/yyyy
?没有第13个月。
2019年5月13日
必须是
dd/MM/YYYY
如果使用SQL参数传递日期,则可以使用DateTime类型的变量。这就是应该这样做的。是否有一个原因让您首先有一个
string
值,而不是一个合适的
DateTime
对象?您是否告诉我们您的数据库将日期存储在字符串字段中?然后是重构数据库的时候了,如果我使用像
PeriodOfAdoption=Convert.ToDateTime(“05/13/2019”)
这样的代码,我将得到运行时错误。因为我的sql datetime格式是2019-13-05,所以我使用的是jQuery datetime选择器。但是你可以使用
datetime
构造函数,我可以更新我的答案来给你一个示例Cool,如果答案解决了您的问题,请随时接受。为什么要使用
string.Split
而不是
DateTime.ParseExact
?是的DateTime.ParseExact将是一个更可靠的解决方案。“mm”表示分钟。这是行不通的。在“yyy/dd/MM”中尝试MM