c#在不同的区域性中转换日期时间

c#在不同的区域性中转换日期时间,c#,datetime,C#,Datetime,我正在尝试将德语DateTime值转换为法语DateTime对象 我的名为“日期制作”的物品的价值为“08.07.2015 17:23:01” 对象testfinal如何可能获得这样的值?您看到的只是一个表示问题。它们是相同的DateTime值 DateTime没有任何隐式格式。而且它没有任何IFormatProvider。它只是一个日期和时间值。格式只是一个主题,当你试图得到它的文本表示 我强烈怀疑您在调试器中看到了这一点 您的stringdate是string,但您的testfinal是D

我正在尝试将德语DateTime值转换为法语DateTime对象

我的名为“日期制作”的物品的价值为“08.07.2015 17:23:01”


对象testfinal如何可能获得这样的值?

您看到的只是一个表示问题。它们是相同的
DateTime

DateTime
没有任何隐式格式。而且它没有任何
IFormatProvider
。它只是一个日期和时间值。格式只是一个主题,当你试图得到它的文本表示

我强烈怀疑您在调试器中看到了这一点

您的
stringdate
string
,但您的
testfinal
DateTime
。如果要在数据库中保存日期时间值,请不要保存其字符串表示形式。将日期时间值直接放入参数化查询


阅读:

如果您使用每个变量声明了数据类型,而不是使用var,那么就更容易发现

  string stringdate = _dateFacture.ToString(new CultureInfo("fr-FR")); 

  DateTime testfinal = DateTime.Parse(stringdate, new CultureInfo("fr-FR")); 
testfinal是日期时间,而不是字符串


当您在调试器或视图中查看时,testfinal将使用DateTime.ToString()转换为字符串,该字符串使用当前区域性(可能显示带点的日期)。

如果要将testfinal存储为DateTime,只需确保您的变量实际上是DateTime

DateTime testfinal = DateTime.Parse(stringdate, new CultureInfo("fr-FR")); 
要显示它,可以在ToString函数中使用一种格式:

string formattedDate = testfinal.ToString("dd.MM.yyyy HH:mm:ss");
//now your formattedDate  will be "08.07.2015 17:23:01"

DateTime
s没有任何与之关联的特定区域性。当您对它们进行字符串化时,确实使用区域性信息来格式化字符串
testfinal
只是一个
DateTime
,因此您看到的很可能是在默认文化中对其进行字符串化的结果。您的意思是,如果我在数据库中使用“.”或“/”保存一个值,表中就会有相同的值吗?@user2621595不要使用字符串表示保存
DateTime
值。将它们直接插入参数化查询中。数据库将它们作为二进制文件保存。
DateTime
本身没有任何
/
string formattedDate = testfinal.ToString("dd.MM.yyyy HH:mm:ss");
//now your formattedDate  will be "08.07.2015 17:23:01"