c# - 将日期添加到时间戳
问题描述
我需要在 unix 时间戳中添加一天。我从 API: 得到时间戳unixDate = (string)result["dt"];
,结果: 1617789600
。但现在我需要增加一天。我该怎么做?
public static List<Tuple<string, string, string, string>> euDataDaily(string url)
{
var aTuple = new List<Tuple<string, string, string, string>> { };
WebClient c = new WebClient();
var data = c.DownloadString(url);
JObject o = JObject.Parse(data);
string conditionCode="";
string unixDate = "";
string dayTemp="";
foreach (var result in o["daily"])
{
unixDate = (string)result["dt"];
dayTemp = (string)result["temp"]["day"];
foreach (var resultas in result["weather"])
{
conditionCode = (string)resultas["icon"];
}
}
List<Tuple<string, string>> icon = convertIcon(conditionCode);
foreach (var tuple in icon)
{
aTuple.Add(Tuple.Create(dayTemp, tuple.Item1, tuple.Item2, unixDate));
}
return aTuple;
}
JSON 示例:
{
"daily": [
{
"dt": 1595268000,
"sunrise": 1608124431,
"sunset": 1608160224,
"temp": {
"day": 278.14,
"min": 273.15,
"max": 279.4,
"night": 273.15,
"eve": 275.82,
"morn": 275.35
},
"weather": {
"clouds": 60,
"pop": 0.84,
"uvi": 2.41,
"icon": "cloudy.gif"
}
}
]
}
谢谢你的帮助!
解决方案
由于您已经在使用 JObject,因此可以将其转换为 int 而不是字符串。如果换成unixDate = (string)result["dt"];
,unixDate = (int)result["dt"];
您将拥有相同的数字,但使用 int 而不是字符串。然后您只需添加 86400(以秒为单位的一天)并将其转换回带有ToString()
.
请注意,强制(int)
转换不适用于普通字符串,它特定于 JObject。如果您尝试在普通字符串上执行此操作,您将得到. 对于普通字符串,请改为(or )。InvalidCastException
int.Parse
int.TryParse
推荐阅读
- ios - 将 Amazon dynamoDB 查询结果传递给主线程以显示 Google Map 引脚
- ruby - 如何在 ruby / chef 中打印 git latest_tag 命令的值
- javascript - 如何使用键和值格式化 jQuery .map()?
- xml - TestNG.xml - 错误“元素类型“类”的内容必须匹配“(类*,参数*)”。
- r - 在 R 的数据框中选择 NA obs
- random -
在 Windows 中生成相同的数字,但在 Linux 中不生成 - javascript - 为什么在音频标签中使用源标签会阻止加载数据事件触发?
- php - 安装 Composer 以获取 Magento 的本地文件
- android - Sceneform 与相机的碰撞
- apache2 - 星星在里面是什么意思
在阿帕奇?