0

我有一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");
4

2 回答 2

1

假设 GetOrders 有 startdate,enddate (我无法判断,因为您没有提供 GetOrders 的函数原型),那么您的日期顺序错误,或者您应该使用 AddMonths(1) 而不是 -1。

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

于 2012-08-15T23:03:27.000 回答
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
            ) ;

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

于 2012-08-15T23:08:53.633 回答