Отображение времени в типе управления вводом времени - PullRequest
0 голосов
/ 27 сентября 2018

В C # у меня есть поле DateTime, в котором я хочу отображать только время в элементе управления ввода типа 'time'.

Пример поля:

<asp:TextBox ID="txtStartTime" runat="server" MaxLength="10" CssClass="form-control" type="time"></asp:TextBox>

Ни одно из этихбудет работать:

txtStartTime.Text = ((System.DateTime)pDS.Tables[0].Rows[0]["StartTime"]).ToShortTimeString(); 

System.String strResult = System.String.Format("{0:hh:mm tt}", pDS.Tables[0].Rows[0]["StartTime"].ToString());
txtStartTime.Text = strResult;

Ответы [ 3 ]

0 голосов
/ 27 сентября 2018

String.Format нужен объект для применения формата.Документация говорит нам, что метод:

Заменяет один или несколько элементов формата в строке строковым представлением указанного объекта.

Строковое представление string само по себе string.Таким образом, ваша строка формата не влияет на строку, которую вы ей передаете.Но он может отформатировать Datetime объект, поскольку используемый вами формат имеет допустимое совпадение строкового представления.

Поэтому просто удалите вызов ToString, и ваш подход будет работать.

System.String strResult = System.String.Format("{0:hh:mm tt}", pDS.Tables[0].Rows[0]["StartTime"]);
txtStartTime.Text = strResult;
0 голосов
/ 28 сентября 2018

Использование Datetime.ToString (String)
Чтобы получить часовой формат, просто используйте ToString("hh:mm:ss")

Пример:

 <%

        var dt = DateTime.Now;//((System.DateTime)pDS.Tables[0].Rows[0]["StartTime"]);
        txtStartTime.Text = dt.ToString("hh:mm:ss");

    %>

    <!DOCTYPE html>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:TextBox ID="txtStartTime" runat="server" MaxLength="10" CssClass="form-control" type="time"></asp:TextBox>
        </form>
    </body>
    </html>
0 голосов
/ 27 сентября 2018

Используйте ToString(format) метод самого класса DateTime:

DateTime dt = ((System.DateTime)pDS.Tables[0].Rows[0]["StartTime"]);
txtStartTime.Text = dt.ToString("hh:mm:ss");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...