【问题标题】:Convert string to date c#将字符串转换为日期c#
【发布时间】:2016-06-10 07:52:44
【问题描述】:

我想在c#中将下面的字符串转换为日期类型,

"Q2(JUN)-2016" 
     to
 Q2-2016 (which is of date type)

结果应该是日期类型,应该是第2季。

【问题讨论】:

  • “日期类型”是什么意思?据我所知,.NET BCL 中没有代表“2016 年第 2 季度”的类型。 (无论如何,这种类型不会被称为Date,因为四分之一不是日期......)
  • 我的意思是可以用四分之一表示的日期。
  • 但是四分之一不是日期。这就像说“范围 1-10 是一个整数”。你指的是哪种类型?或者你在问.NET 中是否有 is 这样的类型? (据我所知,没有,但您可以创建自己的。)
  • DateTime 结构当然没有 SQL 那样的季度,但是您可以创建一个方法,根据月份数字范围作为字符串返回特定年份的季度金额。

标签: c# string date date-conversion


【解决方案1】:

您可以先将其解析为DateTime,然后使用简单的计算得到季度:

string quarterInfo = "Q2(JUN) - 2016";
DateTime monthDt;  // will be parsed to: 06/01/2016 00:00:00
if (DateTime.TryParseExact(
    quarterInfo.Substring(quarterInfo.IndexOf('(') + 1), 
    "MMM) - yyyy",
    DateTimeFormatInfo.InvariantInfo,
    DateTimeStyles.None, 
    out monthDt))
{
    int year = monthDt.Year;
    int quarter = (monthDt.Month + 2) / 3;
    Console.WriteLine("Q{0}-{1}", quarter, year);  // Q2-2016
}

【讨论】:

    猜你喜欢
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 2011-11-28
    • 2010-09-23
    • 2014-09-27
    相关资源
    最近更新 更多