Questo comportamento è incorporato nel debugger, nel caso specifico che si stia eseguendo il debug di un programma scritto in VB.NET. Visibile dall'aspetto di #
nello screenshot. Niente di particolarmente insolito, il debugger in molti casi si sforza di rendere il suo output uguale al modo in cui lo avresti scritto in un programma. Ad esempio, prendi C#, una stringa che contiene doppi apici incorporati verrà visualizzata con barre rovesciate prima di loro. Non effettivamente presente nella stringa, ma necessario quando si dichiara una stringa letterale nel codice sorgente.
Quindi le regole di lingua VB.NET si applicano al formato della stringa letterale che vedi. Descritto nel capitolo 2.4.6 delle specifiche della lingua, è non sensibile alla cultura. Ovviamente non può essere, il tuo codice sorgente non produrrà un programma diverso quando il tuo collega in Cina lo compila. Mi limito a copiare/incollare le regole di produzione:
DateLiteral ::= # [ Whitespace+ ] DateOrTime [ Whitespace+ ] #
DateOrTime ::=
DateValue Whitespace+ TimeValue |
DateValue |
TimeValue
DateValue ::=
MonthValue/DayValue/YearValue |
MonthValue – DayValue - YearValue
TimeValue ::=
HourValue : MinuteValue [ : SecondValue ] [ WhiteSpace+ ] [ AMPM ] |
HourValue [ WhiteSpace+ ] AMPM
MonthValue ::= IntLiteral
DayValue ::= IntLiteral
YearValue ::= IntLiteral
HourValue ::= IntLiteral
MinuteValue ::= IntLiteral
SecondValue ::= IntLiteral
AMPM ::= AM | PM
Quindi è sempre mese/giorno/anno. Se hai bisogno di vedere il modo in cui appare quando lo converti in una stringa, devi usare la conversione di stringhe appropriata nell'espressione dell'orologio. Come CStr(Date.Now)
eccetera, fai attenzione che ci sono molti modi per farlo dato che DateTime.ToString() può prendere caratteri di formattazione.
fonte
2015-03-09 21:50:50
Le date in cui sono mostrati ?! – Benjol
Che cosa è 'Date' nel tuo quickwatch? È un oggetto personalizzato? –
@MichalCiechan in vb.net si usa la data invece di datetime. – Peter