我正在升级将SOAP请求发送到Web服务的应用程序。新的网络服务有一些强类型字段,其中一个是“TimeStamp”字样。具有以下定义:
array false
mandatory true
output false
input true
xsdType xsd:long
Length
Values
maxVal 990101000000000
minVal 131105100000000
nativeFormat 9999999999999999
default None
description Balance TimeStamp YYMMDDHHMMSSNNN
所以我尝试过以下但我无法正确操作并抛出异常" String未被识别为有效的DateTime。" :
wsSoapBody.TimeStamp = Convert.ToInt64(DateTime.ParseExact _
(DateTime.Now, "YYMMDDHHMMSSNNN",System.Globalization.CultureInfo.InvariantCulture));
那么我在这里错过或出错了什么?
答案 0 :(得分:4)
如果您想将日期转换为上述格式,则ParseExact
不是必需的。它用于将给定格式的字符串解析为DateTime
。对于您的问题,您只需要:
Convert.ToInt64(DateTime.Now.ToString("yyMMddHHmmssfff", CultureInfo.InvariantCulture))
答案 1 :(得分:3)
时间字符串格式区分大小写
wsSoapBody.TimeStamp = Convert.ToInt64(DateTime.ParseExact _
(DateTime.Now, "yyMMddHHmmssfff",System.Globalization.CultureInfo.InvariantCulture));