2

必要なものを除いて、考えられるすべてのDateTime形式を見つけました:yyyymm。これを取得するにはどうすればよいですか?

使用しているコードは次のとおりです。

List <string> routines = new List<string>();
routines.Add("1 - Routine");
routines.Add("6 - Planned Outage");

int year = 2011;
int quarter = 1;

DateTime timeframe = new DateTime(year, (quarter * 3), 01).AddMonths(1); 

var results =

    (from wo in WORKORDERs

        join wot in WORKORDERTYPEs on wo.Wot_oi equals wot.Wotyoi

        join pri in PRIORITies on wo.Prio_oi equals pri.Priooi

        join s in SITEs on wo.BEparn_oi equals s.Siteoi

    where wo.Audt_created_dttm.Value.Year >= year - 3 && wo.Audt_created_dttm.Value.Year >= 2006
        && wo.Audt_created_dttm < timeframe && (s.Id =="NM" || s.Id == "TH") && 
        !wot.Id.Contains("stand") &&  !(wo.Ci_cnc_date != null && pri.Prioid != "1 - Routine" &&
        pri.Prioid != "6 - Planned Outage") && (SqlMethods.Like(pri.Prioid, "1%") || 
        SqlMethods.Like(pri.Prioid, "2%") || SqlMethods.Like(pri.Prioid, "3%"))     

    select new {PM = wo.Wosource, Site = s.Id, Priority = pri.Prioid, Worktype = wot.Id,
        WoNumber = wo.Id, Description = wo.Aenm, CreateDate = wo.Audt_created_dttm,
        CloseDate = wo.Clsdt_date,
        MonthNum = String.Format("{0:yyyy mm}",  wo.Clsdt_date), 
        Planning = routines.Contains(pri.Prioid) ? "Planned" : "Unplanned"});

私は使ってみました:

MonthNum = String.Format("{0:yyyy mm}",  wo.Clsdt_date) 

年は正しく表示されますが、月はすべて00です。これは、wo.Clsdt_dateの形式が文字列の形式(mm / dd / yyyy)と異なるためだと思います。

何か案は?

4

3 に答える 3

15

必要MMではなく、必要mmです。mm分です。

于 2012-06-01T14:21:22.697 に答える
3

「mm」は分、「MM」は月を表しますが、月は2桁です。したがって、2012年6月には201206になりますが、月に1桁しか必要ない場合は、「yyyyM」の代わりに「M」を1つ使用すると、20126になります。

DateTime.Now.ToString("yyyyMM")
于 2012-06-01T14:23:24.520 に答える
1

日付の書式設定でmmは、月ではなく分を意味します。MM代わりに使用してください。

于 2012-06-01T14:21:32.960 に答える