C# 中的日期时间字符串格式

本文关键字:字符串 格式 时间 日期 | 更新日期: 2023-09-27 18:33:13

我有一个包含 3 个字符串变量的项目。

  1. DateFormatStr是我需要用来输出日期的格式字符串。
  2. DateFormatFrom是应用请求的开始日期
  3. 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变量的开始日期和开始日期。

谢谢

C# 中的日期时间字符串格式

如果我

理解正确,您可以使用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);