• ISO 8601 is paywalled
  • RFC allows a space instead of a T (e.g. 2020-12-09 16:09:…) which is nicer to read.
  • silly goose meekah@lemmy.world
    link
    fedilink
    arrow-up
    3
    arrow-down
    1
    ·
    edit-2
    1 year ago

    but what does the command line matter for dates? sure every once in a while you’ll have to pass a date as an argument on the command line but I think usually that kind of data is handled by APIs without human intervention, so once these are set up properly, I don’t see the problem

    • rtxn@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      1 year ago
      rsync -a "somedir" "somedir_backup_$(date)"
      

      If the date command returns an RFC-3339-formatted string, the filename will contain a space. If, for example, you want to iterate over the files using for d in $(find...) and forget to set $IFS properly, it can cause issues.

      • calcopiritus@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Both arguments are surrounded by ", which should be space-safe.

        At least in the shells I use, putting " makes spaces inside paths a non-issue.

        • rtxn@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          For the rsync command, yes. But this:

          for d in $(find . -type d); do
              echo "$d"
          done
          

          will process the space-separated parts of each path as separate items. I had to work around this issue just two days ago, it’s an obscure thing that not everyone will keep in mind.

        • rtxn@lemmy.world
          link
          fedilink
          English
          arrow-up
          5
          ·
          1 year ago

          Again, it’s not just CLI, it’s an insurance against misinterpreted characters breaking programs.

            • rtxn@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              ·
              1 year ago

              Yeah? I once spent an entire week debugging a plaintext database because the software expected the record identifiers to be tokenized a certain way, but the original data source had spaces in those strings.

              The software was the ISC DHCP server, the industry standard for decades and only EOL’d a year ago.

              • silly goose meekah@lemmy.world
                link
                fedilink
                arrow-up
                1
                ·
                1 year ago

                Sounds like a weekend that you could have saved if the software was just implemented properly and accepted spaces.

                Something being an industry standard does not necessarily mean it’s good. Sometimes it just means it was the cheapest, or sometimes even just because it was used for so long. How long did it take for Torx to somewhat replace philips head screws despite being better in most cases?

                I think date strings are made for human and machine readability. Similar to XML or JSON. So, why not improve systems so that we can have more human readable date strings? If you don’t care about human readability and want to make sure there is no confusion with spaces, you can just use epoch timestamps.