转换日期时间格式不能正确格式化
本文关键字:格式化 不能 格式 日期 时间 转换 | 更新日期: 2023-09-27 18:07:49
这个让我觉得自己像个白痴,但我不明白为什么它不起作用。
我有String
"6/9/2014 9:30:20 AM"
我将这个字符串解析为DateTime。
DateTime myTempDate = DateTime.Parse(date);
现在读起来是一样的,现在我想把它缩短到一个月。
myTempDate.ToString("MMMM");
但是结果还是一样的…
我已经尝试转换。ToDatetime我也试过其他格式,它从来没有改变过。
这是怎么回事??
更新:ok似乎方法是正确的,我也没有发疯,所以这里一定发生了别的事情…
一些额外的信息,如果这有帮助。这些都是在Umbraco 7.1.x中完成的
这发生在局部视图中。
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@using System.Web.Mvc.Html;
@using Umbraco.Web;
@using System.Globalization;
@{
// Get this blogs root, does not use an id because there may be more thanone blog
IPublishedContent blogRoot = Model.Content.AncestorOrSelf("SmartBlogBlog");
// Get the posts in this blog
IEnumerable<IPublishedContent> posts = blogRoot.Descendants("SmartBlogPost").OrderBy("updateDate");
// Create the tag dictionary
Dictionary<string, int> categoryList = new Dictionary<string, int>();
Dictionary<string, int> dateList = new Dictionary<string, int>();
// Loop through all the posts then loop through their tags to add to the tag dictionary
foreach (IPublishedContent post in posts)
{
string[] categories = post.GetProperty("smartBlogCategory") != null
&& post.GetProperty("smartBlogCategory").Value != null
&& !string.IsNullOrEmpty(post.GetProperty("smartBlogCategory").Value.ToString())
? post.GetProperty("smartBlogCategory").Value.ToString().Split(',')
: new string[0];
string[] dates = post.GetProperty("smartBlogDate") != null
&& post.GetProperty("smartBlogDate").Value != null
&& !string.IsNullOrEmpty(post.GetProperty("smartBlogDate").Value.ToString())
? post.GetProperty("smartBlogDate").ToString().Split(',')
: new string[0];
foreach (string category in post.GetProperty("smartBlogCategory").Value.ToString().Split(','))
{
if (categoryList.ContainsKey(category))
{
categoryList[category]++;
}
else
{
categoryList.Add(category, 1);
}
}
foreach(string date in post.GetProperty("smartBlogDate").Value.ToString().Split(','))
{
if(dateList.ContainsKey(date))
{
DateTime tempDate = DateTime.Parse(date);
tempDate.ToString("MMMM");
string myTempDate = tempDate.ToString();
dateList[myTempDate]++;
}
else
{
DateTime myTempDate = DateTime.Parse(date);
myTempDate.ToString("MMMM");
string finalTempDate = myTempDate.ToString();
dateList.Add(finalTempDate, 1);
}
}
}
<span class="smartSubTitle smartTopBorder">Categories</span><br />
// Loop through the tag dictionary
<ul>
@foreach(KeyValuePair<string, int> category in categoryList)
{
//Deal with the tag
<li>
<span><a class="smartCategory" href="@Umbraco.NiceUrl(blogRoot.Id)?category=@category.Key">@category.Key</a></span>
<p>...........................</p>
</li>
}
@foreach(KeyValuePair<string, int> date in dateList)
{
<li>
<span><a class="smartDate" href="@Umbraco.NiceUrl(blogRoot.Id)?category=@date.Key">@date.Key</a></span>
<p>...........................</p>
</li>
}
</ul>
}
Try This:
string dt = "6/9/2014 9:30:20 AM";
DateTime dtFinal = DateTime.ParseExact(dt, "d/M/yyyy h:mm:ss tt",
CultureInfo.InvariantCulture);
String MonthName = dtFinal.ToString("MMMM");
编辑:你没有在下面的语句中赋值ToString()函数的返回值:
tempDate.ToString("MMMM");
您需要将ToString()函数的返回值分配给一些相关变量,如下所示:
String MonthName = tempDate.ToString("MMMM");
这就是问题所在。您没有使用返回值。ToString不修改现有的值。它返回一个新字符串。所以不用下面的代码
tempDate.ToString("MMMM");
string myTempDate = tempDate.ToString();
myTempDate.ToString("MMMM");
string finalTempDate = myTempDate.ToString();
改为:
string myTempDate = tempDate.ToString("MMMM");
string finalTempDate = myTempDate.ToString("MMMM");
TRY
string monthName = myTempDate.ToString("MMMM", CultureInfo.InvariantCulture);
也可以代替
DateTime myTempDate = DateTime.Parse(date);
DateTime myTempDate = DateTime.ParseExact(date, "d/M/yyyy h:mm:ss tt",
CultureInfo.InvariantCulture);
由:Sudhakar Tillapudi建议/提到