将DD/mm/Yyyy字符串转换为C#中的Yyyy-DD-MM DateTime



如何将13/05/2019(dd/mm/yyyy(字符串转换为2019-13-05(yyyy-dd-mm( dateTime dateTime 在C#中,SQL drever期望yyyy-dd-mm格式datatype

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);
    }
}

我得到的

您只需使用以下示例即可使用所需格式:

string dateTime = "05/13/2019";
CultureInfo provider = CultureInfo.InvariantCulture;  
// It throws Argument null exception  
DateTime dateTime10 = DateTime.ParseExact(dateTime, "yyyy/dd/mm", provider);  
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]));

将英国日期字符串转换为datetime

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;
}

然后您可以将它们放在一起:

public string ToBigEndianString(string ukDate)
{
    DateTime? d = ToDateTime(ukDate);
    return ToBigEndianString(d);
}

但是您可以将日期时间传递到SQL存储过程。https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlparametercollection.addwithvalue?view=netframewiewtramework = netframework-4.8

更改ofereofadoption的数据类型type System.DateTime

,然后您可以使用具有许多过载的DateTime构造函数初始化属性。

如果您的字符串格式始终以:'2019-13-05'的形式yyyy-dd-mm形式您可以通过使用.Split('-')字符串函数来提取年度和一天的年度,或者如果其格式为'2019/13/05'您可以在'/'中拆分'/',例如。.Split('/')

然后,您可以使用构造函数这样创建DateTime对象(您可以在此处查看https://learn.microsoft.com/en-us/dotnet/api/system.datemen.datetime.-ctor?view=netframework-4.8(:

构造函数

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]));

如果您需要C#侧的string,则在C#中非常简单,并且在线有很多示例

最新更新