C#修改字符串

时间:2014-08-04 16:44:22

标签: c# sql string razor

我正在处理一个应用程序,在该应用程序中,我从数据库中检索数据,以便在我的cshtml中的表格中显示。我调用的其中一个字段是日期字段。数据库中的数据以下列格式存储:MMDDYY即; 091504.由于我不需要进入的原因,数据必须以该格式存储在数据库中。我试图找出如何修改其显示以显示09/15/04而不是091504.

@model IEnumerable<BillingApp.Models.SERV_CHARGE_INT_RATE_NSF_PENALTY>

<table id="Test" class="tablesorter">
<thead>
<tr>
<th>Effective Date</th>
</tr>
</thead>


@if (Model.Count() == 0)
{
    <tbody>
    <tr>
        <td colspan="4">
            No Records match search criteria
        </td>
    </tr>
        </tbody>  
}  
else{
    <tbody>
    @foreach (var item in Model)
    {         
        <tr>
        <td>
            @Html.DisplayFor(modelItem => item.EFFECTIVE_DATE)
        </td>
        </tr>
    }
    </tbody>
    </table>

2 个答案:

答案 0 :(得分:2)

如果您使用DateTime对象,则可以尝试在模型中使用[DisplayFormat]

前:

 [DisplayFormat(DataFormatString = "{MM/dd/yy}")]
 public DateTime EFFECTIVE_DATE { get; set }

如果您使用的是string而不是DateTime,则可以考虑使用@ ByteBlast解决方案转换数据类型:

DateTime.ParseExact(item.EFFECTIVE_DATE, "MMddyy", CultureInfo.CurrentCulture);

答案 1 :(得分:0)

有很多方法可以解决这个问题。

一种方法是让你的模型类将数据库中出现的日期解析为实际的DateTime对象,然后在整个应用程序中使用它们(如果你需要对日期做任何其他事情,可能是最好的选择)。 p>

如果你需要做的只是显示日期,那么另一种方法是在显示字符串时对其进行切片。有点像这样:

@foreach (var item in Model)
{         
    <tr>
    <td>
        @(item.EFFECTIVE_DATE.Substring(0,2))/@(item.EFFECTIVE_DATE.Substring(2,2))/@(item.EFFECTIVE_DATE.Substring(4,2))
    </td>
    </tr>
}