2016-10-17 32 views
0

我打电话给我的日期时间为“dd-MM-yyyy 00:00:00”的webservice。现在我想将它保存到数据库中。所以为了保存日期,我必须将日期格式转换为MM/dd/yyyy。我曾尝试下面的代码,日期时间格式转换,但没有工作对我来说c日期转换为MM/dd/yyyy#

1. DateTime.ParseExact(string, "MM/dd/yyyy", culture); 
2. Convert.ToDateTime(string).ToString("MM/dd/yyyy",CultureInfo.InvariantCulture); 

谁能帮助我在这?

+3

“所以为了保存日期,我必须将日期格式转换为MM/dd/yyyy。”真?我希望你能够通过'DateTime'。这绝对比将它转换回字符串要好。你正在使用什么样的数据库,以及如何插入它? –

+0

而不是“没有什么适用于我”,如果你分享出了什么问题,它会有所帮助。你有例外吗?错误的输出? –

+0

你不需要转换任何东西。日期是一个日期。如果您没有告诉我们您使用的是哪种数据库系统和连接,我们无法知道您的问题是什么,您可以将它存储在DateTime列中,无需任何形式的转换 – Steve

回答

3

DateTime类型没有任何特定的格式,您可以直接将其保存到数据库。但是,如果你想把它当作特定格式字符串,那么你可以通过

//input date string as dd-MM-yyyy HH:mm:ss format 
string date = "17-10-2016 20:00:00"; 
//dt will be DateTime type 
DateTime dt = DateTime.ParseExact(date, "dd-MM-yyyy HH:mm:ss", CultureInfo.InvariantCulture); 
//s will be MM/dd/yyyy format string 
string s = dt.ToString("MM/dd/yyyy"); 

做到这一点,如果你输入dateDateTime类型,那么你可以得到格式化字符串直接

string s1 = date.ToString("MM/dd/yyyy"); 
3

DateTime是一个结构没有任何有关类似“格式”的信息。

如果您想创建DateTime值的字符串表示形式,则只使用一种格式。 “你没有为我工作”的意思是你的调试器总是使用相同的格式来显示DateTime的值。

将值插入数据库的操作取决于数据库系统和您使用的连接类型。通常情况下,您应该使用参数化查询,您可以按原样传递DateTime,并且一切正常。

如果必须将DateTime值直接放入查询字符串中,则可以简单地使用myDate.ToString("MM/dd/yyyy",CultureInfo.InvariantCulture);。但我绝对相信你使用的数据库连接支持直接接受DateTime的参数化查询,我不会建议将该值转换回字符串表示形式。

0
var dateTime = "28-08-1993 12:12:12"; 
DateTime dt = DateTime.ParseExact(dateTime, "dd-MM-yyyy hh:mm:ss", CultureInfo.InvariantCulture); 
var convertedDate = dt.ToString("MM/dd/yyyy"); 
Console.WriteLine(convertedDate);