C# - 转换日期时间格式 yyyy-MM-dd

标签 c# ssis datetime-format

<分区>

我正在尝试将日期时间格式从“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)。

我首先尝试通过使用 (DT_DBDATE) 字段“替换原始字段”来使用派生列。这没有用,因为它给了我原始来源。

所以我尝试使用脚本组件,这导致了我的问题的顶部,并且引起了很多困惑。它根本不起作用。

解决方案是通过“添加新列”并为其提供 (DT_DBDATE) 字段来使用派生列。 DT_DBDATE 的原始格式实际上是 yyyy-MM-dd。

最佳答案

我认为您只需要了解 ToString 重载:

string fromFormat = "dd/MM/yyyy"; 
string toFormat = "yyyy-MM-dd";

DateTime newDate = DateTime.ParseExact("15/01/2001", fromFormat, null);

Console.WriteLine(newDate.ToString(toFormat));

关于C# - 转换日期时间格式 yyyy-MM-dd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6756554/

相关文章:

c# - 文本和复选框之间的空间

sql-server-2008 - 如何在sql Job中获取从step1到step2的值

sql - ETL 包最初加载所有数据,然后下次运行以仅加载更改或新项目的最佳方法

javascript - 将 Intl.DateTimeFormat 理解为 JavaScript 对象

c# - Entity Framework 和MySql更新实体

c# - 用逗号分隔的字符串列表,并为列表的每个项目添加前缀字符串

c# - 读取http body并将其放入变量中

SSIS 派生列 - REPLACENULL 将列宽加倍

python-2.7 - 迭代 Pandas DataFrame 的 Float 时间戳并转换为日期时间

c# - 在 .NET 中使用字符串格式 "M"发出 DateTime.ToString