我一直在尝试使用DateTime.ParseExact来读取从数据库收到的DateTime信息。收到的数据是字符串格式,看起来像这样
"00:10:47:18"
我正在实施的代码如下:
D = DateTime.ParseExact("00:10:47:18", "dd:HH:mm:ss", null);
其中D的类型为DateTime。但是,我得到一个格式异常,说无效的字符串格式。我也试过这个
D = DateTime.ParseExact("00:10:47:18", "'dd':'HH':'mm':'ss'", null);
但即使使用上面的代码也会给我格式异常。任何帮助指出我正确的方向将不胜感激。注意:我在Unity3D中执行此操作并在C#上编码。
答案 0 :(得分:3)
您的数据看起来像是持续时间,而不是日期/时间。您必须为此目的使用TimeSpan
body {
background: whitesmoke;
}
#notice_view {
height: 185px;
width: 385px;
border: 2px solid grey;
display: inline-block;
background-color: white;
}
.notices {
margin-top: 10px;
margin-left: 20px;
color: black;
width: 240px;
float: left;
cursor: pointer;
border: solid 1px red;
}
.dates {
margin-top: 10px;
margin-left: 10px;
color: black;
width: 95px;
float: left;
cursor: pointer;
z-index: 50;
}
Unity不支持TimeSpan.ParseExact方法(它是在.NET 4中引入的),所以我想你唯一能做的就是手动解析:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<div class="center">
<div class='container'>
<div id="notice_view">
<div class="b">더보기</div>
<div id="notice1" class="notices">notice1</div>
<div id="date1" class="dates">date1</div>
<div id="notice2" class="notices">notice2</div>
<div id="date2" class="dates">date2</div>
<div id="notice3" class="notices">notice3</div>
<div id="date3" class="dates">date3</div>
<div id="notice4" class="notices">notice4</div>
<div id="date4" class="dates">date4</div>
</div>
</div>
</div>
</body>
用法:
string input = "00:10:47:18";
TimeSpan output = TimeSpan.ParseExact(input, @"dd\:hh\:mm\:ss", CultureInfo.InvariantCulture);
答案 1 :(得分:0)
这是我得到的:https://msdn.microsoft.com/en-us/library/dd992370(v=vs.110).aspx
intervalString = "17:14:48.153";
format = "G";
culture = CultureInfo.CurrentCulture;
interval = TimeSpan.ParseExact(intervalString, format, culture);
//Console.WriteLine("'{0}' --> {1}", intervalString, interval);
来自https://msdn.microsoft.com/en-us/library/se73z7b9(v=vs.110).aspx 的Timespan.Parse的编辑
string value = "6:12:14:45";
string cultureName = "en-US";
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
TimeSpan ts = TimeSpan.Parse(value);
//Console.WriteLine("{0} --> {1}", value, ts.ToString("c"));