C#如何将字符串转换为用于时间范围的时间格式?
我有一个程序,可以使用标记化检索日志文本文件的部分时间 该程序的主要目的是检索时间部分,然后继续将字符串转换为DateTime格式,该格式可以用作时间范围时间轴函数的一部分 但是,在将时间转换为日期时间时,系统将结果输出为 “23/11/2010 9:31:00 PM”,将时间正确转换为12小时格式,但使用了日期功能 因此,问题是如何只转换时间而不输出或处理日期。如何将时间转换为24小时格式的HH:MM:SS 请告知密码。谢谢C#如何将字符串转换为用于时间范围的时间格式?,c#,datetime,time,C#,Datetime,Time,我有一个程序,可以使用标记化检索日志文本文件的部分时间 该程序的主要目的是检索时间部分,然后继续将字符串转换为DateTime格式,该格式可以用作时间范围时间轴函数的一部分 但是,在将时间转换为日期时间时,系统将结果输出为 “23/11/2010 9:31:00 PM”,将时间正确转换为12小时格式,但使用了日期功能 因此,问题是如何只转换时间而不输出或处理日期。如何将时间转换为24小时格式的HH:MM:SS 请告知密码。谢谢 class Program { static void Ma
class Program
{
static void Main(string[] args)
{
//System.Collections.Generic.IEnumerable<String> lines = File.ReadLines("C:\\Test\\ntfs2.txt");
String value = "Thu Mar 02 1995 21:31:00,2245107,m...,r/rrwxrwxrwx,0,0,8349-128-3,C:/Program Files/AccessData/AccessData Forensic Toolkit/Program/wordnet/Adj.dat";
//foreach (String r in lines)
//{
String[] token = value.Split(',');
String[] datetime = token[0].Split(' ');
String timeText = datetime[4]; // The String array contans 21:31:00
DateTime time = Convert.ToDateTime(timeText); // Converts only the time
Console.WriteLine(time);
}
}
类程序
{
静态void Main(字符串[]参数)
{
//System.Collections.Generic.IEnumerable lines=File.ReadLines(“C:\\Test\\ntfs2.txt”);
String value=“Thu Mar 02 1995 21:31:002245107,m..,r/RRWXRWX,0,08349-128-3,C:/Program Files/AccessData/AccessData法医工具包/Program/wordnet/Adj.dat”;
//foreach(行中的字符串r)
//{
字符串[]标记=value.Split(',');
字符串[]datetime=token[0]。拆分(“”);
String timeText=datetime[4];//字符串数组包含21:31:00
DateTime=Convert.ToDateTime(timeText);//只转换时间
控制台写入线(时间);
}
}
编辑我看到你说不要处理日期,这在技术上是处理日期的-但这比根据空间分割并逐段重建时间要干净得多。/System.Collections.Generic.IEnumerable lines=File.ReadLines(“C:\\Test\\ntfs2.txt”);
//System.Collections.Generic.IEnumerable<String> lines = File.ReadLines("C:\\Test\\ntfs2.txt");
String value = "Thu Mar 02 1995 21:31:00,2245107,m...,r/rrwxrwxrwx,0,0,8349-128-3,C:/Program Files/AccessData/AccessData Forensic Toolkit/Program/wordnet/Adj.dat";
String[] token = value.Split(',');
String[] datetime = token[0].Split(' ');
String timeText = datetime[4]; // The String array contans 21:31:00
DateTime time = Convert.ToDateTime(timeText); // Converts only the time
Console.WriteLine(time.ToString("HH:mm:ss"));
String value=“Thu Mar 02 1995 21:31:002245107,m..,r/RRWXRWX,0,08349-128-3,C:/Program Files/AccessData/AccessData法医工具包/Program/wordnet/Adj.dat”;
字符串[]标记=value.Split(',');
字符串[]datetime=token[0]。拆分(“”);
String timeText=datetime[4];//字符串数组包含21:31:00
DateTime=Convert.ToDateTime(timeText);//只转换时间
控制台写入线(time.ToString(“HH:mm:ss”);
您可以使用DateTime.ToString(“模式”)将DateTime转换为任何所需的格式
这里有一个可用的模式列表只需使用此代码将日期时间(如下午5:12)转换为1712
public string ConvDate_as_str(string dateFormat)
{
try
{
char[] ch = dateFormat.ToCharArray();
string[] sps = dateFormat.Split(' ');
string[] spd = sps[0].Split('.');
dateFormat = spd[0] + ":" + spd[1];
if ((sps[1].ToUpper() != "PM") && (sps[1].ToUpper() != "AM"))
{
return "Enter Correct Format like <5.12 pm>";
}
DateTime dt = new DateTime();
dt = Convert.ToDateTime(dateFormat);
string date = "";
if (sps[1].ToUpper() == "PM")
{
date = (dt.Hour + 12).ToString("00");
}
else
date = dt.Hour.ToString("00");
return date + dt.Minute.ToString("00");
}
catch (Exception ex)
{
return "Enter Correct Format like <5.12 pm>";
}
}
公共字符串ConvDate\u as\u str(字符串日期格式)
{
尝试
{
char[]ch=dateFormat.ToCharArray();
字符串[]sps=dateFormat.Split(“”);
字符串[]spd=sps[0]。拆分('.');
dateFormat=spd[0]+“:”+spd[1];
如果((sps[1].ToUpper()!=“PM”)和&(sps[1].ToUpper()!=“AM”))
{
返回“输入正确格式如”;
}
DateTime dt=新的DateTime();
dt=Convert.ToDateTime(日期格式);
字符串日期=”;
如果(sps[1].ToUpper()=“PM”)
{
日期=(dt.Hour+12).ToString(“00”);
}
其他的
日期=dt.Hour.ToString(“00”);
返回日期+dt.Minute.ToString(“00”);
}
捕获(例外情况除外)
{
返回“输入正确格式如”;
}
}
只需使用此代码将字符串转换为时间即可
try
{
string hour = stringFormat.Substring(0, 2);
string min = stringFormat.Substring(2, 2);
DateTime dt = new DateTime();
dt = Convert.ToDateTime(hour+":"+min);
return String.Format("{0:t}", dt); ;
}
catch (Exception ex)
{
return "Please Enter Correct format like <0559>";
}
试试看
{
stringhour=stringFormat.Substring(0,2);
string min=stringFormat.Substring(2,2);
DateTime dt=新的DateTime();
dt=转换到当前时间(小时+“:”+分钟);
返回字符串.Format(“{0:t}”,dt);
}
捕获(例外情况除外)
{
返回“请输入正确格式,如”;
}
为什么我的代码这么难:
private void timer7_Tick(object sender, EventArgs e)
{
label4.Text = DateTime.Now.TimeOfDay.Hours.ToString() + ":" + DateTime.Now.TimeOfDay.Minutes.ToString() + ":" + DateTime.Now.TimeOfDay.Seconds.ToString() + ":" + DateTime.Now.TimeOfDay.TotalMilliseconds.ToString();
label7.Text = DateTime.Now.Date.Year.ToString() + "-" + DateTime.Now.Date.Month.ToString() + "-" + DateTime.Now.Date.Day.ToString();
}
DateTime dt=New DateTime(date);错误:与…匹配的最佳重载方法有一些无效参数。DateTime.TryParse可能有助于我的错误-DateTime.TryParse(..),或者如果您不想错误检查DateTime.Parse(),time.ToString是否可以转换为另一个DateTime变量让我们假设time2=time.ToString(“HH:mm:ss”)?time.ToString(“HH:mm:ss”)将返回一个字符串。因此左值应为string类型,不能分配给DateTime。更多的解释可能有助于其他程序员理解代码中的情况。
try
{
string hour = stringFormat.Substring(0, 2);
string min = stringFormat.Substring(2, 2);
DateTime dt = new DateTime();
dt = Convert.ToDateTime(hour+":"+min);
return String.Format("{0:t}", dt); ;
}
catch (Exception ex)
{
return "Please Enter Correct format like <0559>";
}
private void timer7_Tick(object sender, EventArgs e)
{
label4.Text = DateTime.Now.TimeOfDay.Hours.ToString() + ":" + DateTime.Now.TimeOfDay.Minutes.ToString() + ":" + DateTime.Now.TimeOfDay.Seconds.ToString() + ":" + DateTime.Now.TimeOfDay.TotalMilliseconds.ToString();
label7.Text = DateTime.Now.Date.Year.ToString() + "-" + DateTime.Now.Date.Month.ToString() + "-" + DateTime.Now.Date.Day.ToString();
}