C# Amazon MWS日期时间问题取决于初始化的方式

C# Amazon MWS日期时间问题取决于初始化的方式,c#,amazon-web-services,amazon-mws,C#,Amazon Web Services,Amazon Mws,我请求Amazon MWS使用其SDK()提供报告。我正在呼叫请求报告()。我必须提交一个开始和结束日期。我遇到的问题是,如果以某种方式初始化,SDK将不会接受我的DateTime输入,但会以另一种方式接受,我不理解这是为什么 这是我的密码。当我使用DateTime.Today.AddDays(-14)初始化时,它不起作用。当我通过设置一个特定的日期进行初始化时,新的日期时间(2019,1,23)会起作用。当我在LINQPad中运行这两个程序时,结构在我看来是相同的 注释的代码不起作用。代码就在

我请求Amazon MWS使用其SDK()提供报告。我正在呼叫请求报告()。我必须提交一个开始和结束日期。我遇到的问题是,如果以某种方式初始化,SDK将不会接受我的DateTime输入,但会以另一种方式接受,我不理解这是为什么

这是我的密码。当我使用DateTime.Today.AddDays(-14)初始化时,它不起作用。当我通过设置一个特定的日期进行初始化时,新的日期时间(2019,1,23)会起作用。当我在LINQPad中运行这两个程序时,结构在我看来是相同的

注释的代码不起作用。代码就在后面

MarketplaceWebServiceConfig config = new MarketplaceWebServiceConfig();
            config.ServiceURL = "https://mws.amazonservices.com";

            MarketplaceWebServiceClient service =
                new MarketplaceWebServiceClient(
                    ConfigurationManager.AppSettings["AWSAccessKey"],
                    ConfigurationManager.AppSettings["SecretKey"],
                    "Easy MWS Reports",
                    "1.0",
                    config);

            RequestReportRequest request = new RequestReportRequest();
            request.Merchant = ConfigurationManager.AppSettings["SellerId"];
            request.MarketplaceIdList = new IdList();
            request.MarketplaceIdList.Id = new List<string>( new string [] { ConfigurationManager.AppSettings["MarketplaceId"] } );

            request.ReportType = "_GET_AMAZON_FULFILLED_SHIPMENTS_DATA_";

            //request.StartDate = DateTime.Today.AddDays(-14);
            //request.EndDate = DateTime.Today;
            request.StartDate = new DateTime(2019, 1, 6);
            request.EndDate = new DateTime(2019, 2, 5);

            RequestReportResponse response = service.RequestReport(request); 

我仍然不知道这是怎么工作的,但是我现在做了一个创可贴:VAR=DATETIME。今天,AddDays(-20);var now=DateTime.Today;request.StartDate=新的日期时间(然后.年,然后.月,然后.天);request.EndDate=新的日期时间(now.Year,now.Month,now.Day);你能使用Fiddler并检查SDK为你做的文章吗?使用AddDays(-14)运行它,然后使用手动创建的DateTime,查找参数中的差异。我也很好奇!我只是那样做了。SDK发送的StartDate和EndDate错误。所以问题似乎是SDK。SDK是开源的。我试图遵循代码的路径。对我来说没有什么突出的。这是电话的post数据。起始日期=2019-02-06T20%3A00%3A50.052Z和结束日期=2019-02-06T20%3A00%3A50.052Z是否与
日期时间的
种类相关?i、 e.当您使用
新的
语法时,您没有指定将其设置为默认值的类型(
未指定的
),并且当您今天使用
语法时,默认情况下,它将具有一种
本地
。而您发布的
POST
调用包含一种格式,说明其类型为
Utc
。这是有意义的eitamal。您能否先创建UTC日期,然后将(-14)添加到该日期中。或者在减去14之后将本地日期时间转换成UTC。我仍然不知道这是怎么工作的,但是我现在做了一个创可贴:VAR=DATETIME。今天,AddDays(-20);var now=DateTime.Today;request.StartDate=新的日期时间(然后.年,然后.月,然后.天);request.EndDate=新的日期时间(now.Year,now.Month,now.Day);你能使用Fiddler并检查SDK为你做的文章吗?使用AddDays(-14)运行它,然后使用手动创建的DateTime,查找参数中的差异。我也很好奇!我只是那样做了。SDK发送的StartDate和EndDate错误。所以问题似乎是SDK。SDK是开源的。我试图遵循代码的路径。对我来说没有什么突出的。这是电话的post数据。起始日期=2019-02-06T20%3A00%3A50.052Z和结束日期=2019-02-06T20%3A00%3A50.052Z是否与
日期时间的
种类相关?i、 e.当您使用
新的
语法时,您没有指定将其设置为默认值的类型(
未指定的
),并且当您今天使用
语法时,默认情况下,它将具有一种
本地
。而您发布的
POST
调用包含一种格式,说明其类型为
Utc
。这是有意义的eitamal。您能否先创建UTC日期,然后将(-14)添加到该日期中。或者在减去14后将本地日期时间转换为UTC。
var then = DateTime.Today.AddDays(-15);
var now = DateTime.Today;
request.StartDate = new DateTime(then.Year, then.Month, then.Day);
request.EndDate = new DateTime(now.Year, now.Month, now.Day);