C# 如何在转换为字符串后完全从datetime中删除时间段?
我需要向存储过程传递一个字符串参数,该存储过程表示一个日期,但长度只有10个字符。我无法通过更改存储过程来更改变量类型或长度。我唯一的选择是使用C#来确保参数是合适的 为此,我想将DateTime对象转换为字符串并删除时间。我尝试在DateTime对象上使用.Date方法,但这只是将时间转换为午夜。这在我的本地机器上是正常的,它用一系列零表示午夜,但在我部署到代码的机器上,午夜由12am表示。这会导致存储过程引发异常 我还尝试通过将DateTime对象转换为字符串后的前10个字符来形成子字符串。然而,由于某些天数和月份是个位数,而其他天数和月份是两位数,因此得出的结果不一致 例如: 2010年12月12日转换为“2010年12月12日” 但是 1900年1月1日被转换为“1/1/1900 1”(“1”来自12:00:000AM的开头)您可以使用C# 如何在转换为字符串后完全从datetime中删除时间段?,c#,C#,我需要向存储过程传递一个字符串参数,该存储过程表示一个日期,但长度只有10个字符。我无法通过更改存储过程来更改变量类型或长度。我唯一的选择是使用C#来确保参数是合适的 为此,我想将DateTime对象转换为字符串并删除时间。我尝试在DateTime对象上使用.Date方法,但这只是将时间转换为午夜。这在我的本地机器上是正常的,它用一系列零表示午夜,但在我部署到代码的机器上,午夜由12am表示。这会导致存储过程引发异常 我还尝试通过将DateTime对象转换为字符串后的前10个字符来形成子字符串。
string date = dt.ToShortDateString();
或(同义)
或
最后一种方法可以确保格式,即使当前区域性的日期格式不同。您可以使用
string date = dt.ToShortDateString();
或(同义)
或
最后一种方法可以确保格式,即使当前区域性的日期格式不同。有很多方法可以做到这一点,请尝试以下方法: var myDateTime=DateTime.Now
var参数=myDateTime.ToString(“yyyy-MM-dd”,CultureInfo.InvariantCulture) 有很多方法可以做到这一点,可以尝试的方法是: var myDateTime=DateTime.Now
var参数=myDateTime.ToString(“yyyy-MM-dd”,CultureInfo.InvariantCulture) 因此,查找第一个空格并使用子字符串将其删除。只需执行
myDate.ToSortDateString()
即可查找第一个空格并使用子字符串将其删除。只需执行myDate.ToSortDateString()
string date = dt.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);