我想使用 getdate(( 打印 ctime 数据的年、月、日、小时、分钟、秒。 有人可以举个例子来说明如何做到这一点吗?
这是代码:
how can i define the DATA as a struct date time?
getdate(&DATE);
printf("The year is : %dn",DATE.da_year);
printf("The month is : %dn",DATE.da_month);
printf("The day is : %dn",DATE.da_day);
也有人可以告诉我如何从 obj c 转换为 c++ 以下内容:
(NSString *)conv_fromDateToString:(NSDate *)normalDate{ //code }
我之前的回答是不正确的。
你可能需要这个。
#include <ctime>
#include <iostream>
using namespace std;
int main() {
time_t t = time(0);
struct tm * p = localtime( & t );
cout << "year is " << 1900 + p->tm_year << " day is " << p->tm_wday << endl;
}
有关更多详细信息,请参阅 http://www.cplusplus.com/reference/clibrary/ctime/localtime/和 http://www.cplusplus.com/reference/clibrary/ctime/tm/。
我不太确定你在问什么。 如果getdate
功能你是询问是 X/Open 的,然后需要一个char const*
作为论点;在C++,这通常可以通过调用c_str()
一个std::string
. 该函数实际上需要许多其他然而,通过各种狡猾的手段进行争论;特别是,必须设置环境变量DATEMSK
,或者之前使用启动应用程序,或从 setenv
(或putenv
(调用您的应用程序。
请注意,此变量指定文件的名称,该文件getdate
读取以获取用于分析时间和日期的模板。
该函数返回一个指向tm
的指针,标准的Unix分解时间和日期结构。 返回空指针以指示错误,错误代码在全局变量 getdate_err
中。
所有这些都意味着大量的静态数据,并且完全缺乏线程安全。 这看起来像那些遗留的Unix函数之一,定义回到不存在线程的时代,从根本上说从现代的角度来看,破碎。 与大多数其他产品不同但是,在这种情况下,似乎没有线程安全更换。
无论如何,有关getdate
的确切规格,请参阅 Posix-X/Open 规范,并用于tm
(或struct tm
(的规范,因为这是a C API(,请参阅 Posix 标准中的time.h
规范或C 标准。