【问题标题】:What is the best way for sorting date (string type)? [closed]排序日期(字符串类型)的最佳方法是什么? [关闭]
【发布时间】:2021-08-05 03:14:50
【问题描述】:

我通过执行ls -al 命令得到一个日期。

例如:

Aug 5 11:56
Jul 14 09:31

我无法添加对该信息进行排序的选项。

在这种情况下。这是最好的方法吗?

  1. 转换

    Aug 5 11:56 -> 08051156
    Jul 14 09:31 -> 07140931
    
  2. 排序

    07140931
    08051105
    

【问题讨论】:

  • 最好的方法是将日期字符串设为ISO-8601 格式。
  • 为什么不用ls -ltr
  • 你想达到什么目的?你为什么使用ls而不是c++文件列表API?

标签: c++ linux date sorting


【解决方案1】:

您的解决方案都不起作用。我什至不知道你从11:56 那里得到1105。将日期时间排序为字符串的方法是使用ISO-8601。但是你到底为什么要使用ls -al 在 C++ 中获取日期呢?你应该调用stat()来获取文件信息,它会返回struct timespec,你可以使用它直接排序为数字,不需要处理字符串

从C++17开始你可以直接在std::filesystem中使用std::filesystem::last_write_time和其他类型的时间进行排序

即使您从命令行获取时间,最好使用stat command 获取日期为 ISO-8601

【讨论】:

  • 当然,考虑到问题中提供的代码量——除了标签之外,C++ 在哪里适合问题并不完全清楚......你已经像任何人一样涵盖了这些部分.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-11
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 1970-01-01
  • 2021-06-13
  • 1970-01-01
相关资源
最近更新 更多