0

我正在读出一个带有日期的 Json 文件。

jsonValue->GetObject()->GetNamedObject("board")->GetNamedNumber("date")

该日期以 Unix 代码格式保存:

"date":1347973494

但我需要以“19.09.2012”之类的正常格式获取它。我找不到合适的功能来解决这个问题。我已经尝试过 DateTimeFormatter 类,但我认为这不是正确的方法。

所以有人知道如何将 DateTime 从 Unix 时间戳更改为像“19.09.2012”这样的普通格式吗?

4

2 回答 2

1

Unix 时间戳是自 1970 年以来的秒数,因此将秒数添加到 1970-01-01。

int unixTimestamp = 1347973494;
System::DateTime timestamp = System::DateTime(1970, 1, 1).AddSeconds(unixTimestamp);

然后将 DateTime 格式化为您喜欢的任何字符串格式,或将其用作 DateTime。

System::String^ formatted = timestamp.ToString("dd.MM.yyyy")
于 2012-09-19T12:24:55.257 回答
0

我解决了日历类的问题,你可以在这里找到

int unixTimestamp = (int)jsonValue->GetObject()->GetNamedNumber("date");

Windows::Globalization::Calendar^ cal = ref new Windows::Globalization::Calendar();
 cal->Year = 1970;
 cal->Month = 1;
 cal->Day = 1;
 cal->Minute = 0;
 cal->Hour = 0;
 cal->Second = 0;
 cal->AddSeconds(unixTimestamp);

 mainDate -> Text = cal->DayAsString() + ". " + cal->MonthAsString() + " " + cal->YearAsString();
于 2012-09-19T14:25:06.730 回答