我需要解析配置文件中的实际日期值。所以我需要知道是否有DateTime.Now()?
的字符串表示我可以通过DateTime.Parse(..)
解析它吗?
由于
修改
对不起,我没有很好地解释自己。我重新解释了我的问题。 我的配置文件包含以下部分:
<Parameters>
<Parameter Name="StartTime" Value="**I Want to put a string here that will be parsed as DateTime.Now()**"/>
</Parameters>
注意Value属性中指定的内容!
答案 0 :(得分:6)
我认为只需解析日期时间就无法实现您想要的效果。我认为你要做的是,有一个代表DateTime.Now的值,现在没有,因为DateTime.Now永远在变化。您可能想要做的是允许一个特殊的字符串,您想要表示Now值:
public DateTime GetDateTime(string value)
{
if (string.IsNullOrEmpty(value))
return DateTime.MinValue;
if ("{now}".Equals(value, StringComparison.InvariantCultureIgnoreCase))
return DateTime.Now;
return DateTime.Parse(value);
}
答案 1 :(得分:3)
DateTime.Parse将解析多种格式:
如果您想进一步控制解析,可以使用DateTime.ParseExact
。
关于您的修改,只需使用DateTime.Now.ToString()
。
答案 2 :(得分:3)
正如其他人所建议的那样,最好的解决方案是在通过DateTime.Parse(...)
如果出于某种原因无法做到这一点,那么下一个最佳解决方案是仅指定时间;当天的日期将在您指定的时间返回:
DateTime today = DateTime.Parse("12:34"); // Currently returns 2010/06/04 12:34
答案 3 :(得分:1)
DateTime.Now.ToLongDateString();
DateTime.Now.ToLongTimeString();
DateTime.Now.ToShortDateString();
DateTime.Now.ToShortTimeString();
DateTime.Now.ToString("insert a valid date formatter string here");
顺便说一句,如果我理解你的需要,那么正确的解决办法就是:
parse the date from the text file with DateTime.TryParse();
now you have a DateTime variable with the text file date stored.
now you can do
DateTime textParsedDate = new DateTime(2010, 6, 4); //your textFile parsed date.
int result = DateTime.Now.CompareTo(textParsedDate); //refer to the documentation to understand the result of DateTime.CompareTo
答案 4 :(得分:1)
var dateAsString = DateTime.Now.ToString();
Console.WriteLine(DateTime.Parse(dateAsString));
Now属性的ToString()产生你想要的东西。
其格式为"04/06/2010 11:41:43"
答案 5 :(得分:1)
在我看来,您从配置文件中获取了一个字符串,并且您希望它包含当前日期/时间。你希望它的行为有点像人们在ASP.NET中习惯的那样:
<p>Current date: <%= DateTime.Now.ToString() %>.</p>
要从任何配置文件执行相同操作,假设您的函数名为GetConfigParam(“StartTime”),您可以执行以下操作:
<!-- inside config file -->
<Parameter
Name="StartTime"
Value="Current date/time: {0}"/>
<!-- or, if you just want the current date/time (but that gets a bit silly
as you can do that by code as has been suggested here before -->
<Parameter Name="StartTime" Value="{0}" />
然后,您使用此代码解析上述内容({0}
将由String.Format
填充,并可与任何对象一起使用):
string startTimeParam = GetConfigParam("StartTime");
string startTime = String.Format(startTimeParam, DateTime.Now);
答案 6 :(得分:0)
您是否希望Value属性中的文本类似于自动更新字段?
如果这是您想要的,我认为您可以做的最接近的事情是保存一个访问日志,为每个请求保存一个条目,但这当然取决于您想要首先考虑日期的原因。 / p>