相关疑难解决方法(0)

当前日期和时间为字符串

我写了一个函数来获取格式的当前日期和时间:DD-MM-YYYY HH:MM:SS.它可以工作,但让我们说,它非常难看.我怎么能做同样的事情,但更简单?

string currentDateToString()
{
    time_t now = time(0);
    tm *ltm = localtime(&now);

    string dateString = "", tmp = "";
    tmp = numToString(ltm->tm_mday);
    if (tmp.length() == 1)
        tmp.insert(0, "0");
    dateString += tmp;
    dateString += "-";
    tmp = numToString(1 + ltm->tm_mon);
    if (tmp.length() == 1)
        tmp.insert(0, "0");
    dateString += tmp;
    dateString += "-";
    tmp = numToString(1900 + ltm->tm_year);
    dateString += tmp;
    dateString += " ";
    tmp = numToString(ltm->tm_hour);
    if (tmp.length() == 1)
        tmp.insert(0, "0");
    dateString += tmp; …
Run Code Online (Sandbox Code Playgroud)

c++ string time datetime date

63
推荐指数
6
解决办法
19万
查看次数

为什么std :: localtime和std :: gmtime没有C++ 11线程安全替代品?

在C++ 11中,你仍然需要使用std::localtimestd::gmtime作为间接来打印std::chrono::time_point.这些函数在C++ 11引入的多线程环境中使用是不安全的,因为它们返回一个指向内部静态结构的指针.这尤其令人讨厌,因为C++ 11引入了方便的功能std::put_time,由于同样的原因几乎无法使用.

为什么这么根本被打破或者我忽略了什么?

c++ thread-safety c++11 c++-chrono

44
推荐指数
4
解决办法
1万
查看次数

如何在c中获取时间戳

我想获取登录c的时间戳.我写了一个函数来获取时间戳.但是当我返回变量时,我得到了不同的价值.

我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

char* get_timestamp(){
   time_t rawtime;
   struct tm * timeinfo;
   char buffer[16];
   time (&rawtime);
   timeinfo = localtime (&rawtime);
   strftime (buffer,16,"%G%m%d%H%M%S",timeinfo);
   puts(buffer);
   return buffer; 
}

int main() 
{
   puts(get_timestamp());
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

20130315204815
Ir?0315204815
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮忙...谢谢.

c

4
推荐指数
2
解决办法
5258
查看次数

标签 统计

c++ ×2

c ×1

c++-chrono ×1

c++11 ×1

date ×1

datetime ×1

string ×1

thread-safety ×1

time ×1