Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#将数字转换为时间误差_C#_.net_Datetime - Fatal编程技术网

C#将数字转换为时间误差

C#将数字转换为时间误差,c#,.net,datetime,C#,.net,Datetime,我从excel文件中读取时间,这是我将数字转换为时间的代码 string time = "1350"; DateTime dt = DateTime.ParseExact(time, "HHmm", CultureInfo.InvariantCulture); string timestring = dt.ToString("h:mm tt"); Console.WriteLine(timestring); Console.Read(); 问题是,我的

我从excel文件中读取时间,这是我将数字转换为时间的代码

    string time = "1350";
     DateTime dt = DateTime.ParseExact(time, "HHmm", CultureInfo.InvariantCulture);
    string timestring = dt.ToString("h:mm tt");
    Console.WriteLine(timestring);
    Console.Read();

问题是,我的代码对4位数字很好,但有些数字像600、900等,应该转换为6:00 PM和9:00 PM,但我的代码抛出了一个错误。有更好的方法解决这个问题吗?

在转换为
DateTime
之前,只需用零填充即可

string time = "600".PadLeft(4, '0');

尝试以下解决方案-是的,我在从excel导入数据时尝试过此解决方案

Double dateVal=Convert.ToDouble(mydatetime)

约会?dt=DateTime.FromOADate(dateVal)

字符串时间字符串=dt.ToString(“h:mm tt”)

您正在调用,这意味着文本必须与所提供的文本完全匹配,否则会出现错误。您正在使用的格式字符串:HHmm 24小时时间,前导零表示早于中午的时间。像“600”这样的字符串只有三个字符长,因此与指定的四字符格式(HHmm)不匹配


听起来你不想要前导零,所以你可能想要“hmm”(12小时格式)或“hmm”(24小时格式),这样你就可以解析没有前导零的字符串。如果使用Hmm,则必须将下午6:00指定为1800。如果您使用hmm,您可能还需要使用tt格式字符串,以便区分上午600点和下午600点

尝试在诸如0600、0900等数字之前添加0。为什么600是下午6点?不是早上6点吗?如果不是,那么你希望早上6点用你的格式怎么表达呢?更重要的是,现在是早上6点而不是下午6点-你说的“来自excel文件”到底是什么意思。您正在读取XLS或XLSX文件吗?还是CSV?还是别的什么?从Excel读取日期和时间时,通常使用OADates。另请参见:获取此错误与“string.ToString(System.IFormatProvider)”的最佳重载方法匹配的方法有一些无效参数。尽管您的答案提供了解决方案,但这将显示时间为上午6:00。是否可以将其显示为PM,或者我们需要输入“1800”来实现它。不是我的答案写的是早上6点。我的答案是将600改为0600。是的,当然你应该输入1800来获得下午时间。1)什么是“尝试”(而不是Ty)?你自己检查过了吗?2) 为什么不进行编辑和格式化?3) 这比我之前的回答好多少?OP没有提供足够的细节,但是是的-加载日期通常是从Excel中获取日期的方式。“嗯”和“嗯”仍然需要解析4位数字。