Set DateTime format

后端 未结 6 1254
萌比男神i
萌比男神i 2020-12-03 22:44

I have the following code -

DateTime timeStamp;

timeStamp = System.Convert.ToDateTime(y.InnerText);

Where y.InnerText is

6条回答
  •  广开言路
    2020-12-03 22:56

    How can I set the format of the DateTime object?

    You can't. DateTime values don't have formats, any more than int or double values do. When you want to convert them to/from strings, that's where you specify any formatting information.

    Instead, you should use parameterized SQL and avoid converting the DateTime value back into a string in the first place. This is a general best practice - don't include values in your SQL string; parameterized SQL has multiple benefits:

    • It avoids SQL injection attacks
    • It avoids conversion issues like this one
    • It keeps your code (SQL) separate from your data (parameter values)

    I would also suggest that instead of using Convert.ToDateTime, you specify your expected format when parsing. For example:

    timeStamp = DateTime.ParseExact(y.InnerText,
                                    "dd/MM/yyyy HH:mm:ss",
                                    CultureInfo.InvariantCulture);
    

    Basically, the two rules I try to apply are:

    • Avoid performing any conversions where you don't have to. If you make sure that every system uses the right data types as far as possible, you often don't need to make any conversions at all.
    • Where you do need to convert to/from string representations, be very explicit about the representation you want to consume/produce. For machine-readable values, that should usually use the invariant culture and possibly a custom date/time format. For human-readable values, that should usually use the user's culture and a standard date/time format.

提交回复
热议问题