如何从DateTimeOffsetDateTimeOffset对象中仅提取日期

时间:2014-07-24 20:15:45

标签: c# datetime datetimeoffset

如何从 DateTimeOffsetDateTimeOffset 对象中提取日期?我认为 Date 属性只返回日期部分。但是,我总是得到整个日期,即 7/17/2014 12:00:00 AM -04:00 。我只想获得 2014年7月17日的日期部分。

这是我的代码。

Func<DataRow, string, DateTimeOffset?> getFieldNullableDate = (row, field) =>
{
  if (!string.IsNullOrWhiteSpace((row[field] ?? string.Empty).ToString()))
      return DateTimeOffset.Parse(row[field].ToString()).Date;
  else
      return null;
};

感谢您的帮助。

4 个答案:

答案 0 :(得分:3)

您可以使用此功能仅从MM/DD/YYYY变量中提取DateTimeOffset?

DateTimeOffset? testOne = null;

var final = testOne.HasValue ? testOne.Value.Date.ToShortDateString() : null;//null

DateTimeOffset? testTwo = new DateTimeOffset(DateTime.Today);

var notNull = testTwo.HasValue 
            ? testTwo.Value.Date.ToShortDateString() 
            : null;// 7/24/2014

答案 1 :(得分:1)

实际上,DateTimeOffSet对象具有可以使用的Date和DateTime属性: 例子

DateTimeOffset? offset = new DateTimeOffset(DateTime.Today);
var dateTime = offset.HasValue ? offset.Value.DateTime : DateTime.MinValue.Date;
var date = offset.HasValue ? offset.Value.Date : DateTime.MinValue.Date;
Console.WriteLine($"date time:{dateTime} and date:{date}");

答案 2 :(得分:0)

从DateTime删除时间信息

        DateTime now = DateTime.Now;
        DateTime datePart = new DateTime(now.Year, now.Month, now.Day);

答案 3 :(得分:-1)

我没有查看您的代码,但我相信您正在寻找这种方法:

public string ToShortDateString()

示例:

DateTime thisDay = DateTime.Today;
thisday = thisday.ToShortDateString();