asp.net从yyMMdd获取日期

时间:2015-08-18 08:24:08

标签: c# html asp.net

我这里有这个小代码:

@foreach (var date in ViewBag.MissingDays)
{
    var isoDate = date.ToString("yyMMdd");
    <div class="col-md-1">
        <input type="checkbox" id="isoDate" name="isoDate" value="@isoDate" />
        @isoDate
    </div>
}

这将打印出我错过的视图中的所有日期,就像你可以看到它打印出来的那样,&#34; yymmdd yymmdd yymmdd&#34;等等,但很难知道它是什么工作日,所以我想成为&#34; mo yymmdd tu yymmdd we yymmdd&#34;所以它是当天的两个首字母,我怎么能实现这个呢?

4 个答案:

答案 0 :(得分:5)

您可能希望将yyyyMMdd部分保持原样 - 或理想情况下保持为d,因为两位数的年份格式非常糟糕 - 只需格式化显示部分不同。我认为没有什么可以使用两个月的缩写 - 缩写的月份名称在英国文化中通常是三个字母而不是两个字母。 (这取决于文化。我不知道任何使用两个字母的英语文化,但其他一些文化,如德语。)

我实际上建议只使用D standard date format进行展示,或者可能@foreach (var date in ViewBag.MissingDays) { <div class="col-md-1"> <input type="checkbox" id="isoDate" name="isoDate" value="@date.ToString("yyyyMMdd", CultureInfo.InvariantCulture)" /> @date.ToString("D") </div> } (长而不是简短),因为这会使用适当的文化格式 - 假设当前线程的文化已经适当设置。如下所示:

\\{\\{\\s*Template1\\s*(.*?)\\n\\}\\}

                        ^^

(剃刀语法可能略有偏差 - 希望您能够相应地调整它。)

我知道你已经说出了你想要的格式,但我怀疑你只是在考虑自己文化中的用户。你知道这种格式是否适合其他文化吗?如果所有用户都保证是英语,那不是问题 - 但一般来说,你应该避免这样的假设。

答案 1 :(得分:0)

我相信你应该使用格式&#34; ddd yyMMdd&#34;代替。 它将在工作日打印前三个字母,而不是仅打印2.但我认为只有两个字母没有标准格式。

如果你真的需要2个字母,那么你可以将原来的字母串起来&#34; ddd&#34;格式:

@date.ToString("ddd").Substring(0, 2)

答案 2 :(得分:0)

  

var isoDate = date.ToString(“dddd yyMMdd”);

这将解决您的问题。

@foreach (var date in ViewBag.MissingDays)
{


var isoDate = date.ToString("dddd yyMMdd");

    <div class="col-md-1">
        <input type="checkbox" id="isoDate" name="isoDate" value="@isoDate" />
        @isoDate
    </div>
}

答案 3 :(得分:0)

  

默认情况下,AbbreviatedDayNames包含三个字母日(“星期日”,“星期一”,“星期二”,“星期三”,“星期四”,“星期五”和“星期六”)

要获取自定义日期名称,您可以将自定义日期名称数组分配给AbbreviatedDayNames

@{   
System.Globalization.CultureInfo ci = System.Globalization.CultureInfo.CreateSpecificCulture("");
System.Globalization.DateTimeFormatInfo dtinfo = ci.DateTimeFormat;
dtinfo.AbbreviatedDayNames = new string[] { "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa" };
 }

dddAbbreviatedDayNames的格式说明符,因此您应该使用ddd来获取自定义日期名称

@foreach (var date in ViewBag.MissingDays)
{
 var isoDate = date.ToString("{ddd yyMMdd}", dtinfo);
<div class="col-md-1">
    <input type="checkbox" id="isoDate" name="isoDate" value="@isoDate" />
    @isoDate
</div>
}

- SJ