fork download
  1. #include <iostream>
  2. #include <chrono>
  3. using namespace std;
  4. using namespace std::chrono;
  5.  
  6. size_t MkTimestamp(char *output, size_t size)
  7. {
  8. milliseconds ms = duration_cast<milliseconds>(system_clock::now().time_since_epoch());
  9. seconds s = duration_cast<seconds>(ms);
  10. time_t ctime = (time_t) s.count();
  11. tm components;
  12. size_t return_value = 0;
  13.  
  14. if (!localtime_r(&ctime, &components)) return 0;
  15. if ((return_value = strftime(output, size, "%F %T:XXX", &components)) == 0) return 0;
  16.  
  17. int ms_d1 = ms.count() / 100 % 10, ms_d2 = ms.count() / 10 % 10, ms_d3 = ms.count() % 10;
  18. output[return_value - 3] = ms_d1 + '0';
  19. output[return_value - 2] = ms_d2 + '0';
  20. output[return_value - 1] = ms_d3 + '0';
  21. return return_value;
  22. }
  23.  
  24. int main() {
  25. char buffer[64];
  26. string timestamp(buffer, MkTimestamp(buffer, sizeof buffer));
  27. cout << timestamp << endl;
  28. return 0;
  29. }
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
2014-10-09 01:54:05:022