我是一名有帮助的助手,可以为您翻译以下内容。
我正在尝试将日期时间格式从“dd/MM/yyyy”更改为“yyyy-MM-dd”。
这是我目前拥有的:
DateTime date = Convert.ToDateTime("31/01/2000");
Console.WriteLine(date);
String format = "yyyy-MM-dd";
String dateStr = date.ToString(format);
Console.WriteLine(dateStr);
DateTime parsedDate = DateTime.ParseExact(dateStr, format, CultureInfo.InvariantCulture);
Console.WriteLine(parsedDate);
我得到了这些结果:
31/01/2000 12:00:00 AM
2000-01-31
31/01/2000 12:00:00 AM
最终,我希望最后的结果是2000-01-31。
编辑:为了澄清我的实际目标。我正在使用SSIS将一个DT_DATE(dd/MM/yyyy)字段转换为另一个DT_DATE(yyyy-MM-dd)字段。所以我想使用一个脚本组件。 这意味着我不能将其转换回字符串。
编辑++答案:
对不起,大家,我想我把问题搞混了,但现在我可以自己回答它了。
我的目标是在SSIS中将源字段DT_DATE(dd/MM/yyyy)转换为目标字段DT_DATE(yyyy-MM-dd)。
我首先尝试使用Derived Column通过用(DT_DBDATE)field替换原始字段来完成。这并没有起作用,因为它给了我原始的源。
所以我尝试使用一个脚本组件,导致了我问题的上半部分,和很多困惑。它根本没用。
解决方案是使用Derived Column通过添加一个新列并给它(DT_DBDATE)field。 DT_DBDATE的原始格式实际上是yyyy-MM-dd。
dateTimeInstance.ToShortDateString()
。你可能还想查看区域设置和 Culture 类。这可以帮助你根据系统设置自动使你的日期以特定格式输出。 - Merlyn Morgan-Graham(DT_DATE)myDateTime.ToString("yyyy-MM-dd");
。如果它起作用了,那是因为它将DateTime
转换为字符串,然后转换为DB_DATE
。 - Merlyn Morgan-Graham