从Unix格式获取shortTimeDate(C#)

问题描述 投票:1回答:2

我有时间输入数据如下:

1536271200
1536184800
1536098400
1536012000
1535925600

我做了快速Unix时间转换器:

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

如何获得shortDateFormat(YYYY-MM-DD)?

c# datetime time unix-timestamp converters
2个回答
1
投票

你可以使用.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");
}

当然函数的返回类型必须是字符串。


0
投票

您在DateTime对象和“看起来像日期的文本字符串”之间感到困惑

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

或者,您可以使用提供的标准格式字符串快捷方法之一,例如.ToShortDateString()

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

最终,你需要欣赏的是你在抱怨“我的约会在最后得到了一个时间” - >日期总是有一个时间组件。这个世界上没有约会,你的生日,你的毕业日,新的一年等没有时间与之相关。

一切都在一个日期发生。

当您告诉程序将这些日期打印到控制台时,它包括时间(所有午夜),因为这是您的系统默认执行的操作。如果你想在没有时间的情况下打印它们,请指定一个不包含时间占位符的格式。它正在准备显示数据的过程中,我们选择我们想要看到的内容

© www.soinside.com 2019 - 2024. All rights reserved.