在String上将字符串解析为StringTime(" dddd,MMMM dd,yyyy")

时间:2016-04-18 04:33:02

标签: c# asp.net parsing datetime

我在我的aspx.cs文件中有这个

var RecordID = db.Records.Where(m => m.EmployeeID == employee.EmployeeID).ToList();

dltRecordDate.DataSource = RecordID;
dltRecordDate.DataBind();

并在.aspx

中有这个
 <asp:LinkButton CssClass="list-group-item" Width="100%" BorderStyle="None" Font-Size="Medium" ID="lbnDate" runat="server" Text='<%# Bind("VisitDate") %>' CommandArgument='<%# Bind("RecordNumber") %>'></asp:LinkButton>

我的 VisitDate 字符串。我想做像

这样的事情
Text='<%#DateTime.Parse(Bind("VisitDate")).ToString("dddd, MMMM dd, yyyy")%>'

但是这不会起作用。谢谢

另一种选择就是打印递增数字 1 2 3 4 5

1 个答案:

答案 0 :(得分:3)

在后端定义一个方法(GetValidDate)并使用如下所示:

protected string GetValidDate(object inputDate)
{
    DateTime dateObject;
    if (inputDate != null)
    {
        if (DateTime.TryParse(inputDate.ToString(), out dateObject))
        {
            return dateObject.ToString("dddd, MMMM dd, yyyy");
        }               
    }
    return "invalid Input";
}
标记将是:

Text=<%# GetValidDate(Eval("VisitDate"))%>

因此,如果可转换(有效日期),您将获得所需格式的日期,否则特定文本框将显示文本为"invalid Input"

更新:

在注释中,您正在使用(string)Eval("VisitDate")将对象转换为字符串,但是如果绑定值为null则不好,所以为了避免这种情况,我们可以将方法签名更改为接受对象并执行转换,如果它不是null