首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以C#格式将字符串转换为mmm-yy时间格式

以C#格式将字符串转换为mmm-yy时间格式
EN

Stack Overflow用户
提问于 2009-04-07 12:39:08
回答 6查看 6.9K关注 0票数 0

我需要在ASP.net中使用C#执行一些日期操作。

  1. 我要输入的日期应该是‘7月-05’(mmm-yy格式和type-string)...格式)。我怎么能查到这个?或者我如何用用户输入的字符串来验证这一点?
  2. 验证之后,我需要将其与数据库中的值进行比较(例如,列名buy_period,其值为(例如) 04/31/2007)。

如何编写用于比较两者的查询??(因为这两个日期的格式不同)

你能帮我吗??

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-04-07 13:03:40

使用TryParseExact方法验证字符串并将其解析为DateTime值:

代码语言:javascript
运行
复制
DateTime month;
if (DateTime.TryParseExact("MMM-yy", CultureInfo.InvariantCulture, DateTimeStyles.None, out month)) {
   // parsing was successful
}

DateTime值将使用月份的第一天和时间0:00来填充一个完整的值,因此像"jul-05"这样的字符串将被解析为像2005-07-01 00:00:00.0000这样的完整DateTime值,因此它将是该月份的起点。

要将其与数据库中的日期进行比较,还需要下个月的起始点,您可以使用:

代码语言:javascript
运行
复制
DateTime nextMonth = month.AddMonths(1);

现在,您可以通过以下方式将日期与月份的起始点和结束点进行比较:

代码语言:javascript
运行
复制
where date >= @Month and date < @NextMonth
票数 2
EN

Stack Overflow用户

发布于 2009-04-07 12:49:33

代码语言:javascript
运行
复制
  DateTime myDateTime = DateTime.ParseExact( input, "MMM-yy" );

然后,您可以愉快地将它传递给存储过程(等等)。作为在服务器上进行比较的参数(或者只使用作为现有查询结果返回的DateTime )

票数 5
EN

Stack Overflow用户

发布于 2009-04-07 12:51:26

.NET框架在DateTime结构上有一些很好的方法:解析、TryParse、ParseExact、TryParseExact。

这个信息是浅谈MSDN

因为您正在提供自定义日期字符串,因此我们应该使用ParseExact或TryParseExact。后者如果不能解析,就不会抛出异常。

所以..。我们试试这个..。

代码语言:javascript
运行
复制
using System.Globalization;

CultureInfo MyCultureInfo = new CultureInfo("en-US");
string myString = "Jul-05";
DateTime myDateTime = DateTime.ParseExact(myString, "MMM-yy", MyCultureInfo))
Console.WriteLine();

然后,可以将值myDateTime作为DateTime属性传递给数据库,并对其进行检查。

编辑:该死,我打字的时候被罗兰打了一分钟!

编辑2:请注意“MMM”。正如在System.Globalization.DateTimeFormatInfo.AbbreviatedMonthNames中所述,MMM是“表示当前MSDN页面属性中定义的月份缩写名称”。mmm (小写)无效。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/725491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档