我有两个DateTime变量,beginTime和endTime.通过执行以下操作,我得到了它们的不同之处:
TimeSpan dateDifference = endTime.Subtract(beginTime);
Run Code Online (Sandbox Code Playgroud)
我现在如何使用C#以hh,mm mins,ss secs格式返回一串字符串.
如果差异是00:06:32.4458750
它应该返回00小时,06分钟,32秒
查询上的WMi对象
$colItems = Get-WmiObject Win32_NetworkLoginProfile -Namespace "root\CIMV2"
| Where-Object {$_.name -match "Name"} | Select-Object name,PasswordAge
Run Code Online (Sandbox Code Playgroud)
根据MSDN
PasswordAge
数据类型:datetime
访问类型:只读
密码生效的时间长度.此值是从自上次更改密码以来经过的秒数开始计算的.
示例:00001201000230.000000 000
我正进入(状态
00000068235223.000000:000
Run Code Online (Sandbox Code Playgroud)
所以我尝试过这个TimeSpan,但DateTime没有运气.冒号代表如何获得它所代表的数字小时数.
谢谢将WMI类名添加到标题中,以便下一个被文档措辞搞糊涂的可怜的灵魂.
这是有效的
完美的工作$ str ="00000068235223.000000:000"$ ts = [System.Management.ManagementDateTimeConverter] :: ToTimeSpan($ str)
日:68小时:23分钟:52秒:23毫秒:0蜱:59611430000000总时间:68.9947106481481总时数:1655.87305555556总分:99352.3833333333总分:5961143总百分比:5961143000
我创造了TimeSpan这种方式
TimeSpan ts = new Timespan();
// Do some addition and subtraction on it
Run Code Online (Sandbox Code Playgroud)
然后我使用它将它保存到文件中
string.Format("{0}:{1}:{2}:{3}", ts.Hours, ts.Minutes, ts.Seconds, ts.MilliSeconds);
Run Code Online (Sandbox Code Playgroud)
从它返回的各种值都是这样的
0:0:4:410
0:0:1:425
0:0:1:802
0:0:1:509
0:0:1:674
0:0:1:628
0:0:2:76
Run Code Online (Sandbox Code Playgroud)
如何将其转换回TimeSpan.
我在用
TimeSpan.ParseExact("0:0:4:410", "h:m:s:fff", null);
Run Code Online (Sandbox Code Playgroud)
但它给了我错误 Input String is not in correct format.
我哪里错了?