【问题标题】:How to do Convert.ToDateTime or parse date in C# but only get dd/mm/yyyy in C# 2.0?如何在 C# 中执行 Convert.ToDateTime 或解析日期,但在 C# 2.0 中仅获取 dd/mm/yyyy?
【发布时间】:2010-11-23 11:20:46
【问题描述】:

正如主题所说,我有一个字符串

string CreatedDate = "12/09/2010"

我想将它传递给一个只接受它作为 DateTime 的 web 方法

customer.dateCreated = Convert.ToDateTime(CreatedDate);

它自然会在 Web 服务不接受的日期之后添加 hh:mm:ss,所以当我将日期转换为日期时如何保持短格式?

提前致谢

【问题讨论】:

  • 如果Web服务确实接受DateTime类型的参数,它怎么接受日期之后的“hh:mm:ss”?

标签: c# datetime-parsing


【解决方案1】:

DateTime 值不知道其格式(实际上它不应该)。如果您的网络服务不接受标准日期/时间格式,听起来您的网络服务已损坏。 Web服务的实现是什么? “客户”是自动生成的代理类吗?

【讨论】:

    【解决方案2】:

    假设你有:

    void WebMethod(DateTime date);
    

    string dateString = "12/09/2010";
    

    然后做下一步:

    DateTime date;
    if (DateTime.TryParseExact(dateString, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
    {
        WebMethod(date);
    }
    else
    {
        // raise an error - specified date is not in specified format
    }
    

    注意:

    date.Hour // 0
    date.Minute // 0
    date.Seconds // 0
    

    否则,如果您有 DateTime 对象和 WebMethod(string date) 其中日期应为指定格式,则:

    DateTime date = ..;
    WebMethod(date.ToString("dd/MM/yyyy"));
    

    【讨论】:

      【解决方案3】:

      DateTime 有一个 .Date 属性,用于去除时间信息。

      【讨论】:

      • 据我了解,这不是问题 - 在您解析了一个仅包含日期的字符串之后,时间字段中的所有内容都将为 0。问题在于 Web 服务客户端代码格式化请求中的日期/时间。
      • “剥离时间信息”- 是和否:你会得到一个时间部分为零的 DateTime,但它仍然是一个 DateTime 值。特别是,在问题中对Convert.ToDateTime 调用的结果调用.Date 将返回与输入完全相同的值。
      • 好吧,我正在使用 webservices.netsuite.com/xsd/transactions/v2009_2_0/... 我刚刚发现有一个名为 Date Created 的字段会自动填充(我试图插入的字段通过使用 customer.dateCreated) 但随后在客户的设置深处有一个名为 Created Date 的自定义字段,我应该将我的日期传递给它。我想知道为什么 createdDate 在自动填充时会在 xsd 中...
      【解决方案4】:

      WebService 是否仅接受日期为“12/09/2010”?通常,网络服务应遵循此处的建议 XML Schema Part 2: Datatypes Second Edition

      这是 UTC 格式。使用:

      DateTime.ParseExact(value, "ddd MMM dd HH:mm:ss zz00 yyyy", null);
      

      大多数时候都能解决问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-12-12
        • 2021-10-16
        • 2010-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-13
        相关资源
        最近更新 更多