从 Unix 格式获取 shortTimeDate (C#)
Get shortTimeDate from Unix format (C#)
我有时间输入数据如下:
1536271200
1536184800
1536098400
1536012000
1535925600
我制作了快速的 Unix TimeConverter:
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;
}
但转换后 return 我的日期如下:
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)?
您对 DateTime 对象和 "text string that looks like a date"
感到困惑
您的 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
最终,您需要理解的是您在抱怨 "my date has a time tacked on the end" -> 日期时间总是有时间成分。这个世界上没有日期,你的生日,你的毕业典礼,元旦等没有与之相关的时间。
一切都发生在某个时间,某个日期。
当您告诉您的程序将这些日期打印到控制台时,它包括了时间(所有午夜),因为这是您的系统默认执行的操作。如果你想打印出没有时间的,指定一个不包括时间占位符的格式。在准备显示数据的过程中,我们选择我们想要看到的
您可以使用 .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");
}
当然函数的 return 类型必须是字符串。
我有时间输入数据如下:
1536271200
1536184800
1536098400
1536012000
1535925600
我制作了快速的 Unix TimeConverter:
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;
}
但转换后 return 我的日期如下:
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)?
您对 DateTime 对象和 "text string that looks like a date"
感到困惑您的 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
最终,您需要理解的是您在抱怨 "my date has a time tacked on the end" -> 日期时间总是有时间成分。这个世界上没有日期,你的生日,你的毕业典礼,元旦等没有与之相关的时间。
一切都发生在某个时间,某个日期。
当您告诉您的程序将这些日期打印到控制台时,它包括了时间(所有午夜),因为这是您的系统默认执行的操作。如果你想打印出没有时间的,指定一个不包括时间占位符的格式。在准备显示数据的过程中,我们选择我们想要看到的
您可以使用 .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");
}
当然函数的 return 类型必须是字符串。