DateTime.ToString() format that can be used in a filename or extension?

前端 未结 8 2089
北恋
北恋 2020-12-12 16:53

I want to add a timestamp to filenames as files are created but most of the DateTime methods I\'ve tried output something with spaces and slashes. For instance:



        
相关标签:
8条回答
  • 2020-12-12 17:17

    Using interpolation string & format specifier:

    var filename = $"{DateTime.Now:yyyy.dd.M HH-mm-ss}"
    

    Example Output for January 1st, 2020 at 10:40:45AM:

    2020.28.01 10-40-45


    Or if you want a standard date format:

    var filename = $"{DateTime.Now:yyyy.M.dd HH-mm-ss}"
    

    2020.01.28 10-40-45


    Note: this feature is available in C# 6 and later versions of the language.

    0 讨论(0)
  • 2020-12-12 17:26

    The below list of time format specifiers most commonly used.,

    dd -- day of the month, from 01 through 31.

    MM -- month, from 01 through 12.

    yyyy -- year as a four-digit number.

    hh -- hour, using a 12-hour clock from 01 to 12.

    mm -- minute, from 00 through 59.

    ss -- second, from 00 through 59.

    HH -- hour, using a 24-hour clock from 00 to 23.

    tt -- AM/PM designator.

    Using the above you will be able to form a unique name to your file name.

    Here i have provided example

    string fileName = "fileName_" + DateTime.Now.ToString("MM-dd-yyyy_hh-mm-ss-tt") + ".pdf";
    

    OR

    If you don't prefer to use symbols you can try this also.,

    string fileName = "fileName_" + DateTime.Now.ToString("MMddyyyyhhmmsstt") + ".pdf";
    

    Hope this helps to someone now or in future. :)

    0 讨论(0)
  • 2020-12-12 17:34

    You can use this:

    DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");
    
    0 讨论(0)
  • 2020-12-12 17:34

    You can make a path for your file as bellow:

    string path = "fileName-"+DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss") + ".txt";
    
    0 讨论(0)
  • 2020-12-12 17:36

    You can try with

    var result = DateTime.Now.ToString("yyyy-MM-d--HH-mm-ss");
    
    0 讨论(0)
  • 2020-12-12 17:39

    I have a similar situation but I want a consistent way to be able to use DateTime.Parse from the filename as well, so I went with

    DateTime.Now.ToString("s").Replace(":", ".") // <-- 2016-10-25T16.50.35
    

    When I want to parse, I can simply reverse the Replace call. This way I don't have to type in any yymmdd stuff or guess what formats DateTime.Parse allows.

    0 讨论(0)
提交回复
热议问题