how to convert date with 'T' to/from string in C#

前端 未结 4 1828
无人及你
无人及你 2021-01-04 12:57

I used following functions to convert DateTime from/into string:

DATE_OBJ.ToString(DATE_FORMAT);

DateTime.ParseExact(Date_string,          


        
相关标签:
4条回答
  • 2021-01-04 13:10

    You cannot do this from DateTime, as DateTime holds no TimeZone info.

    This is close: string.Format("{0:s}", dt) will give 2012-03-20T14:18:25. See: http://www.csharp-examples.net/string-format-datetime/

    You could extend this to: string.Format("{0:s}.{0:fff}", dt), which will give 2012-03-20T14:18:25.000

    But you better have a look at DateTimeOffset: DateTime vs DateTimeOffset

    (Not advisable, but to fake it and still use DateTime: string.Format("{0:s}.{0:fff}+04:00", dt))

    0 讨论(0)
  • 2021-01-04 13:13

    If that is a string you receive then you can split the string by T and use only the first part which is the Date component of the whole string and parse that.

    ex:

    string dateTimeAsString = "2012-03-20T14:18:25.000+04:00";
    string dateComponent = dateTimeAsString.Splic('T')[0];
    DateTime date = DateTime.ParseExact(dateComponent, "yyyy-MM-dd",null);
    
    0 讨论(0)
  • 2021-01-04 13:17

    You can go from DateTime to that format with

    DateTime dt = new DateTime();
    dt.ToString("o");
    

    and from that format to DateTime with

    DateTimeOffset.Parse(dateString);
    

    Here is some more info on DateTime format: http://www.dotnetperls.com/datetime-format

    0 讨论(0)
  • 2021-01-04 13:22

    You are better of using DateTimeOffSet like:

    string str = " 2012-03-20T14:18:25.000+04:00";
    DateTimeOffset dto = DateTimeOffset.Parse(str);
    //Get the date object from the string. 
    DateTime dtObject = dto.DateTime; 
    
    //Convert the DateTimeOffSet to string. 
    string newVal = dto.ToString("o");
    
    0 讨论(0)
提交回复
热议问题