代码之家  ›  专栏  ›  技术社区  ›  4est

从Unix格式(C#)获取shortTimeDate

  •  1
  • 4est  · 技术社区  · 6 年前

    我的时间输入数据如下:

    1536271200
    1536184800
    1536098400
    1536012000
    1535925600
    

    public static DateTime Converter(double ts)
    {
            DateTime org= new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
    
            org = org.AddSeconds(ts);
            org = org.ToLocalTime();
    
            return org;
    }
    

    但转换后返回日期如下:

    2018-09-10 00:00:00
    2018-09-07 00:00:00
    2018-09-06 00:00:00
    2018-09-05 00:00:00
    2018-09-04 00:00:00
    2018-09-03 00:00:00
    

    2 回复  |  直到 6 年前
        1
  •  1
  •   Ashkan Mobayen Khiabani    6 年前

    你可以用 .ToString(format) .ToString("yyyy-MM-dd") :

    public static string Converter(double ts)
    {
            DateTime org= new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
    
            org = org.AddSeconds(ts);
            org = org.ToLocalTime();
    
            return org.ToString("yyyy-MM-dd");
    }
    

    当然,函数的返回类型必须是string。

        2
  •  0
  •   Caius Jard    6 年前

    DateTime对象保存日期所在的时间点。通过使用.ToString()和格式字符串,可以将其转换为与所需内容相似的文本字符串:

    https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

    https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings

    https://docs.microsoft.com/en-us/dotnet/api/system.datetime?view=netframework-4.7.2

    最后,你需要明白的是,你在抱怨“我的约会在结尾加了时间”——>日期时间总是有时间成分的。在这个世界上,没有一个日期,你的生日,你的毕业日,新年等等,没有一个时间和它联系在一起。

    每件事都发生在一个时间,一个日期。

    当您告诉程序将这些日期打印到控制台时,它包含了时间(全部是午夜),因为这是您的系统默认执行的操作。如果不想打印时间,请指定不包含时间占位符的格式。。正是在为显示准备数据的过程中,我们选择了我们想看到的东西