我有整数值,例如 06,07,08,.....,16,17,18,...
我想将此整数值转换为 24 小时时间格式。
我正在做这样的事情
//fromTime holds one of the integer value.
DateTime fromTimeDate = DateTime.ParseExact(fromTime.ToString(),
"HH",
CultureInfo.InvariantCulture);
string fromtimestring = fromTimeDate.ToString("hh:mm tt");
但是它给出了错误
“字符串未被识别为有效的日期时间。”
解析时。
我在这里做错了什么。 ?
请尝试此代码:
int val = 16;
TimeSpan result = TimeSpan.FromHours(val);
string fromTimeString = result.ToString("hh':'mm");
实际上,我认为 DateTime 不是代表您需求的正确类型,因为您只关心一天内的时间。日期也代表日期,并且不能截断它(据我所知)。
最简单的事情是这样的:
DateTime time = Date.Today + new TimeSpan (0, 0, seconds);
它只能因两个可能的原因而失败。
fromTime
保存的是从 0
到 9
的单位数字整数,并且由于它的 9
不是 09
,因此格式会失败 HH
。23
或小于0
。 您可以将格式修改为单位数字
H
,这对两者都适用。
DateTime fromTimeDate = DateTime.ParseExact(fromTime.ToString(), "H", CultureInfo.InvariantCulture); //fromTime holds one of the integer value.
上面将解析从
0
到 23
的任何数字。
顺便说一句,它看起来更像
TimeSpan
然后是 DateTime
,您可以使用 TimeSpan.FromHours方法将其转换为
TimeSpan
。
int fromTime = 23;
TimeSpan ts = TimeSpan.FromHours(fromTime);
“HH”格式需要两位数,而
09
作为整数只是“9”。
使用
fromTime.ToString("00")
强制前导 0。
请注意,该日期时间的 date 部分将是“今天”。
您所写的代码是否正确,请检查一次..............
“fromTime”值可以是单个数字,例如“6”而不是“06”或“0”或“超过 24 的其他数字”
“字符串未被识别为有效的日期时间。”当您在下面的行中使用“hh”而不是“HH”时,您将收到此错误.........................
DateTime fromTimeDate = DateTime.ParseExact(fromTime.ToString(), "HH",
CultureInfo.InvariantCulture);
如果你确实有一个代表小时的int,那么你根本不需要做任何解析:
int hour = 23;
var today = DateTime.Today;
var time = new DateTime(today.Year, today.Month, today.Day, hour, 0, 0);
或者(对上面@gean08的答案进行稍微修改的版本):
var time = DateTime.Today + TimeSpan.FromHours(hour);
public string timeformat(int time) {
string hr, min;
min = Convert.ToString(time % 100);
hr = Convert.ToString(time / 100);
if (hr.Length == 1) hr = "0" + hr;
if (min.Length == 1) min = "0" + min;
return hr + ":" + min;
}
您尝试转换什么类型的整数?例如,如果您的整数代表纪元时间戳,如下例所示
{
"token_type": "Bearer",
"expires_on": "1711578241"
}
您可以使用 .NET Core 2.1 或更高版本将其转换为日期时间,如下所示:
var expires_on = "1711578241"; // epoch timestamp returned by JWT token
var expirationDateTime = DateTime.UnixEpoch.AddSeconds(expires_on);
这将返回“3/27/2024 10:24:01 PM”。