C# 用c语言将dd/mm/yyyy字符串转换为yyyy-dd-mm-DateTime#
如何将2019年5月13日(dd/mm/yyyy)字符串转换为c#中2019-13-05(yyyy-dd-mm)日期时间数据类型,sql Server需要yyyy-dd-mm格式的数据类型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()
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日
asdd/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