This behavior is built into the debugger; in a specific case, it debugs a program written in VB.NET. Visible with # in the screenshot. It's okay unusual, in many cases the debugger makes efforts to make its conclusion the same as the way you wrote it in the program. Take C #, for example, a string containing embedded double quotes will be displayed with backslashes in front of them. Actually not present in the string, but necessary when you declare such a string literal in the source code.
So, VB.NET language rules apply to the format of the string you see. Described in chapter 2.4.6 Language Specifications, this is not culture sensitive. Of course, this cannot be, your source code is not going to release another program when your colleague in China compiles it. I just copy / paste the production rules:
DateLiteral ::=
Thus, it is always a month / day / year. If you need to see how it looks when you convert it to a string, you should use the appropriate string conversion in the time zone expression. For example, CStr(Date.Now) etcetera, be careful there are many ways to do this, because DateTime.ToString () can accept formatting characters.
Hans passant
source share