我有这样的时间格式:
string s = DateTime.Now.ToString();
给我输出像
11/29/2013 6:26:13PM
现在如何在windowsPhone中将此输出转换为毫秒???
更新:
首先,我想保存用户启动我的应用程序时的当前时间。之后,每当用户再次启动我的应用程序时,我也会得到时间并将当前启动时间与先前存储的时间进行比较,并检查时差是否为“一天”。
对于这种比较,我需要将11/29/2013 6:26:13PM
转换为毫秒。
另一个问题告诉我如何将“6:26:13 PM”转换为毫秒?
答案 0 :(得分:1)
如果我理解正确,请执行此操作:
根据您的输入创建日期:
DateTime yourInitialDateTime = DateTime.Parse("11/29/2013 6:26:13PM");
之后
TimeSpan span = DateTime.Now - yourInitialDateTime;
所以在span.TotalDays
中你将有多少天过去了。
修改强>
如果您只有一天中的时间并想知道该时间的毫秒数,您必须添加一个日期并按小时0:00:00减去它:
string dummyDate = "01/01/0001";
DateTime end = DateTime.Parse(dummyDate + " " + "6:26:13PM");
var milli = end.Subtract(new DateTime()).TotalMilliseconds;
就是这样。
答案 1 :(得分:0)
试试这个。
var ThatDay = DateTime.Now.AddDays(-1); //This is hard coded but you have to get from where you are storing.
var Today = DateTime.Now;
var Diff = (Today - ThatDay).Milliseconds;
var FriendlyDiff = (Today - ThatDay).ToFriendlyDisplay(5);
public static class TimeSpanExtensions
{
private enum TimeSpanElement
{
Millisecond,
Second,
Minute,
Hour,
Day
}
public static string ToFriendlyDisplay(this TimeSpan timeSpan, int maxNrOfElements)
{
maxNrOfElements = Math.Max(Math.Min(maxNrOfElements, 5), 1);
var parts = new[]
{
Tuple.Create(TimeSpanElement.Day, timeSpan.Days),
Tuple.Create(TimeSpanElement.Hour, timeSpan.Hours),
Tuple.Create(TimeSpanElement.Minute, timeSpan.Minutes),
Tuple.Create(TimeSpanElement.Second, timeSpan.Seconds),
Tuple.Create(TimeSpanElement.Millisecond, timeSpan.Milliseconds)
}
.SkipWhile(i => i.Item2 <= 0)
.Take(maxNrOfElements);
return string.Join(", ", parts.Select(p => string.Format("{0} {1}{2}", p.Item2, p.Item1, p.Item2 > 1 ? "s" : string.Empty)));
}
}