如何将13/05/2019(dd / mm / yyyy)字符串转换为2019-13-05(YYYY-dd-mm) DateTime c#中的数据类型,sql服务器希望使用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);
}
}
我得到的结果
答案 0 :(得分:2)
您可以使用下面的示例并使用所需的格式来简单地完成此操作:
string dateTime = "05/13/2019";
CultureInfo provider = CultureInfo.InvariantCulture;
// It throws Argument null exception
DateTime dateTime10 = DateTime.ParseExact(dateTime, "yyyy/dd/mm", provider);
答案 1 :(得分:0)
将PeriodOfAdoption的数据类型更改为类型System.DateTime
然后您可以使用具有很多重载的DateTime构造函数来初始化属性。
如果您的字符串格式始终基于yyyy-dd-mm格式,则基于:'2019-13-05'
您可以通过使用.Split('-')
字符串函数或格式为'2019/13/05'的年份提取月份和月份的年份,例如, .Split('/')
。
然后,您可以像这样使用构造函数创建DateTime
对象(您可以在https://docs.microsoft.com/en-us/dotnet/api/system.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#中这非常简单,并且在线上有很多示例
答案 2 :(得分:0)
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]));
答案 3 :(得分: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;
}
要将DateTime转换为字符串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);
}
但是您可以将DateTime传递给SQL存储过程。 https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlparametercollection.addwithvalue?view=netframework-4.8