如何更改DateTime值的格式?

时间:2017-03-10 13:00:16

标签: c# .net datetime type-conversion

使用C#/ .NET我试图转换日期时间格式。 我以这种格式收到03/10/2017(MM / dd / yyyy)dateTime。我想将其转换为yyyy-MM-dd hh:mm:ss格式。

string fromdate = from.ToString("yyyy-MM-dd HH:mm:ss");
string format1 = "yyyy-MM-dd HH:mm:ss";
var dateTime = DateTime.ParseExact(fromdate, format1, new CultureInfo("sv-se"), DateTimeStyles.AssumeLocal);

这就是我尝试过的。 fromdate是我想要的格式,但是当我尝试将string转换为dateTime格式时,它会返回与我尝试运行的格式相同的格式(MM / DD / YYY) 。

3 个答案:

答案 0 :(得分:1)

  

...但是当我尝试将字符串转换为dateTime格式时,它会返回我尝试运行的相同格式(MM / DD / YYY)。

     

参考

string fromdate = from.ToString("yyyy-MM-dd HH:mm:ss");

我的假设是:

  1. from实际上是string个实例,您试图将其视为DateTime,并使用DateTime的格式字符串(然后期待它要格式化)。将格式字符串传递给string实例时,格式将被忽略,原始的string将被返回,这就是您没有看到任何更改的原因。
  2. 您实际上在实际代码中使用了string.Format请注意,如果不是这种情况,您会在fromdate.ToString或{{1}时遇到编译错误是一个fromdate实例,你的代码可以工作,你不会问这个问题

    DateTime
  3. 要先使用var fromdate = "03/10/2017"; var fromdateStr = string.Format("{0:yyyy-MM-dd HH:mm:ss}", fromdate); Console.WriteLine(fromdateStr); // output "03/10/2017" from将此DateTime转换为Parse。理想情况下,这部分代码甚至不允许ParseExact成为字符串,它应该是from实例。在查看堆栈时,规则应该是这个。

    • 来自来自的表示层(输入):尽可能转换为正确的类型早期
    • 从商店返回演示文稿(输入)图层:转换为字符串表示形式(供查看)尽可能延迟

    更好的是让绑定控件为你处理这个,但这完全取决于你的表示层。

答案 1 :(得分:0)

您尚未在代码中指定“from”。所以我只是假设这是一个随机对象,其中有一个日期。在这种情况下,您可以执行以下操作

var from = DateTime.Now; //We don't know what this is so let's set it as var
DateTime dteFrom = Convert.ToDateTime(from); //Let's convert this to an actual date so we can convert it to a formatted string

string fromdate = String.Format("{0:yyyy-MM-dd HH:mm:ss}", dteFrom);

注意:我没有测试过这段代码,因此它可能不是最“理想”的方式,也可能无法正常工作,但它应该能为您提供一个很好的指示。

答案 2 :(得分:0)

string stringDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");