我这里有这个小代码:
@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;所以它是当天的两个首字母,我怎么能实现这个呢?
答案 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" };
}
ddd
是AbbreviatedDayNames
的格式说明符,因此您应该使用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