Impossible de convertir l'objet de type 'System.Temps "pour le" type de Système.IConvertible'

J'ai dans ma base de données SQL de la colonne aeStart comme time(0) (permettant d'économiser du temps dans le format de 24 heures), par exemple: 10:48:00, 15:28:00, 16:32:00

J'essaie de l'afficher sur listView de contrôle en format hh:mm tt (format am/pm)

    <ItemTemplate>
        <asp:Label ID="lblStart" runat="server" 
          Text='<%# Convert.ToDateTime(Eval("aeStart")).ToShortTimeString() %>' />
    </ItemTemplate>

J'obtiens une erreur:

Impossible de convertir l'objet de type 'System.Temps " pour le type de
'Système.IConvertible'.

Si j'essaie:

Text='<%# Eval("aeStart", "{0:HH:mm tt}") %>'

J'obtiens:

Chaîne d'entrée n'était pas dans un format correct.

Si je ne l':

Text='<%# Eval("aeStart") %>'

Je vais obtenir quelque chose comme

10:48:00 ou 15:25:00

qui pas ce que je veux.

Je veux 10:48 am ou 3:25 pm

Comment résoudre ce problème, je veux que le temps est affiché sur l'étiquette au format de 12 heures avec am/pm (préférez tout le code sur le .fichier aspx, pas dans le code behind)

RÉPONSE:

<asp:Label ID="lblStart" runat="server" Text='<%# DateTime.ParseExact(Eval("aeStart").ToString(), "HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture).ToShortTimeString() %>' />
  • Ce type de données et le format est la date stockée dans la base de données?
  • time(0) comme dit dans la question.
  • Alors pourquoi ne pas utiliser DateTime? Ce n'est pas une plage de temps (que vous avez là.
  • Quelle est la valeur de aeStart à l'époque?