【问题标题】:How to get a timestamp in format YYMMDDHHMMSSNNN如何获取格式为 YYMMDDHHMMSSNNN 的时间戳
【发布时间】:2014-11-20 11:05:19
【问题描述】:

我正在升级一个将 SOAP 请求发送到 Web 服务的应用程序。新的 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 

所以我尝试了以下方法,但无法正确并引发异常“字符串未被识别为有效的日期时间。”

 wsSoapBody.TimeStamp = Convert.ToInt64(DateTime.ParseExact _
(DateTime.Now, "YYMMDDHHMMSSNNN",System.Globalization.CultureInfo.InvariantCulture));

请问我在这里遗漏了什么或出错了?

【问题讨论】:

    标签: c# web-services soap timestamp


    【解决方案1】:

    如果您想将日期转换为上述格式,则不需要ParseExact。它用于将给定格式的字符串解析为DateTime。对于您的问题,您只需要:

    Convert.ToInt64(DateTime.Now.ToString("yyMMddHHmmssfff", CultureInfo.InvariantCulture))
    

    【讨论】:

      【解决方案2】:

      时间字符串格式区分大小写

       wsSoapBody.TimeStamp = Convert.ToInt64(DateTime.ParseExact _
         (DateTime.Now, "yyMMddHHmmssfff",System.Globalization.CultureInfo.InvariantCulture));
      

      【讨论】:

      • 3 票? o.O 为什么?这甚至不编译。 DateTime.Now 返回 DateTime,而不是 string。你确定你知道解析的确切含义吗?
      • @SonerGönül 感谢您的指出,您说得对,是关注时间格式而没有注意到第一个参数不在字符串中,tq。
      猜你喜欢
      • 2021-10-27
      • 2018-07-14
      • 1970-01-01
      • 2022-01-19
      • 2017-05-20
      • 2014-04-17
      • 2019-01-18
      • 2011-07-24
      • 2012-02-14
      相关资源
      最近更新 更多