2012-08-15 134 views
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"); 
+1

嘗試不將它轉換爲UTC,發送默認的'DateTime.Now' – 2012-08-15 22:49:29

+6

看起來您將結束日期設置爲比開始日期早1個月* *! – Jon 2012-08-15 22:49:36

回答

1

假設GetOrders有開始日期,結束日期(我不能說,因爲你沒有給的函數原型GetOrders),那麼你的日期是在錯誤的順序或者你應該AddMonths(1)而不是-1。

(如果不是這種情況,請包括GetOrders函數原型,我會修改或刪除我的答案)

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 
      ) ; 

按照一般的做法,保持獨立分開計算,而不是他們在一個方法調用相結合,使代碼更易於理解,更易於修改和更易於調試。

相關問題