格式化DateTime而不将其转换为String

时间:2012-08-15 22:48:06

标签: c# datetime ebay

我有一个GetOrders课程,要求我提供DateTime值的开始和结束日期。然而,当我提供日期时,我收到此错误消息:Sorry, the end date was missing, invalid, or before the start date. <EndDate> must be in YYYY-MM-DD or YYYY-MM-DD HH:MI:SS format, and after the start date.

这是我的代码:

ff.GetOrders(DateTime.UtcNow, DateTime.UtcNow.AddMonths(-1), TradingRoleCodeType.Buyer, OrderStatusCodeType.Completed);

当我尝试使用格式化字符串时,它会工作:

        String dt1 = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ");
        String dt2 = DateTime.UtcNow.AddMonths(-1).ToString("yyyy-MM-ddTHH:mm:ssZ");

2 个答案:

答案 0 :(得分:1)

假设GetOrders有startdate,enddate(由于你没有给GetOrders的函数原型,我无法分辨),那么你的日期顺序错误,或者你应该AddMonths(1)而不是-1。 / p>

(如果不是这种情况,请包含GetOrders的原型函数,我将修改或删除我的答案。)

答案 1 :(得分:1)

如上所述,我的数学有点......我想:

ff.GetOrders( DateTime.UtcNow               ,
              DateTime.UtcNow.AddMonths(-1) ,
              TradingRoleCodeType.Buyer     ,
              OrderStatusCodeType.Completed
            ) ;

尝试类似

的内容
DateTime dtStart = DateTime.utcNow      ;
DateTime dtEnd   = dtStart.AddMonths(1) ;

ff.GetOrders( dtStart ,
              dtEnd   ,
              TradingRoleCodeType.Buyer ,
              OrderStatuscodeType.Completed
            ) ;

作为一般做法,将单个计算分开而不是在方法调用中将它们组合使代码更容易理解,更容易修改,更容易调试。