C# 中的日期时间字符串格式
本文关键字:字符串 格式 时间 日期 | 更新日期: 2023-09-27 18:33:13
我有一个包含 3 个字符串变量的项目。
-
DateFormatStr
是我需要用来输出日期的格式字符串。 -
DateFormatFrom
是应用请求的开始日期 -
FilloutDateTo
是请求将适用的结束日期。
问题是我不想手动指定日期。正如您在下面的示例(一个工作示例)中看到的那样,我需要指定日期,但是有没有办法使开始日期的时间为 00:00:00,结束日期的时间为 23:59:59?
string DateFormatStr = "MM/dd/yy hh:mm:ss tt";
string DateFormatFrom = "12/04/14 00:00:00";
string FilloutDateTo = "12/04/14 23:59:59";
因此,我想系统时间来识别formatStr
变量的开始日期和开始日期。
谢谢
如果我
理解正确,您可以使用DateTime.Today
属性,例如;
var dt1 = DateTime.Today;
var dt2 = DateTime.Today.AddDays(1).AddSeconds(-1);
并使用DateTime.ToString()
来格式化它们;
var DateFormatFrom = dt1.ToString("MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
var FilloutDateTo = dt2.ToString("MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
结果将是;
12/04/2014 00:00:00
12/04/2014 23:59:59
您使用了hh
格式说明符,但它适用于 12 小时制。改用HH
格式说明符,用于 24 小时制。由于结果字符串没有任何 AM/PM 指示符,因此无需使用tt
格式说明符。
在C# 6.0
中,您可以使用字符串内插来显示格式化的日期。
DateTime startOfDay = DateTime.Today;
DateTime endOfDay = DateTime.Today.AddDays(1).AddTicks(-1);
string dateFormatFrom = $"{startOfDay: MM/dd/yy hh:mm:ss tt}";
string filloutDateTo = $"{endOfDay: MM/dd/yy hh:mm:ss tt}";
string idate = "01/11/2019 19:00:00";
DateTime odate = Convert.ToDateTime(idate);
DateTime sdate1 = DateTime.Parse(idate);
string outDate1 = String.Format("{0}/{1}/{2}", sdate1.Day, sdate1.Month,sdate1.Year);
Console.WriteLine(outDate1);