【问题标题】:string comparison on date format wont work?日期格式的字符串比较不起作用?
【发布时间】:2012-07-25 23:54:40
【问题描述】:

嗨,由于某种原因,我不能对日期进行字符串比较?举个例子:

public List<HireDate> GetHireDate(string anything)
{
List<HireDate> hiredate = hiredates.Where(n =>
string.Equals(n.HireFromDate, anything, StringComparison.CurrentCultureIgnoreCase)
).ToList();
return hiredate;
}

它根本行不通?如果我在文本框13/07/2012 中输入它的存储方式,它会返回 404 not found???

通用列表/获取请求的输出如下所示:

<ArrayOfHireDate>
<HireDate>
<HireFromDate>13/07/2012</HireFromDate>
<HireToDate>28/07/2012</HireToDate>
<NumberOfDaysHired>15</NumberOfDaysHired>
</HireDate>
</ArrayOfHireDate>

还有另一种方法可以找到带有正斜杠的字符串吗?例如,在任何网络字符串比较器中使用 / 都不起作用,它总是会抛出 404 not found?

【问题讨论】:

  • n.HireFromDate 是 Date 对象还是字符串对象?在日期的情况下,我会使用 n.HireFromDate.ToString("dd/MM/yyyy") 来指定日期格式...它根本不起作用,它不编译?
  • HireFromDate 是 public string HireFromDate 它编译我得到一个 404 not found 寿。我把它缩小到字符串比较。
  • 如果它是一个普通的 asp.net 服务器,我会说 iis 错误在说什么,但我以前从未使用过 wpf ......一个简单的 404 对我来说似乎很奇怪......不是吗?
  • 404 not found 是一个休息回复,说它没有找到您发送的内容。
  • 对于阅读这个问题的每个人:虽然我无法回答这个问题,但这个问题是关于 ASP.Net 的。更多背景信息(404 的上下文和来源)可以找到here

标签: c# wpf wcf linq web-services


【解决方案1】:

两件事:

1) 要将一个字符串放入另一个字符串中,最常用的方法是使用String.Format。该方法采用格式字符串(例如"Date: {0} Time: {1}")和一堆参数。字符串中每次出现的{0} 都被第一个参数替换,{1} 被第二个参数替换,等等。还有其他选项可以格式化字符串中的参数,有关详细信息,请参阅the MSDN page on String.Format

2) 如果您有一个 URL,并且在您的应用程序中收到 404,请首先验证该 URL 的语法是否正确。直接在浏览器中手动尝试您在程序中创建的 URL,如果它不起作用,请找出实际用于提供参数的语法。例如,日期可能必须格式化为 13-07-2012 而不是 13/07/2012 才能正常工作。如果是这样,您可能可以通过选择适当的CultureInfo 来解决此问题。

对于任何DateTime date 对象,要使用您想要的任何CultureInfo 对其进行格式化,请使用ToString 的重载并指定d 作为格式。例如,使用不变的文化:

var str = date.ToString("d", CultureInfo.InvariantCulture);

其他格式字符串可以找到here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    相关资源
    最近更新 更多