C#DateTime.Parse(longdate)引发异常
在UWP中,将日期格式化为长日期字符串,如下所示C#DateTime.Parse(longdate)引发异常,c#,datetime,uwp,C#,Datetime,Uwp,在UWP中,将日期格式化为长日期字符串,如下所示 string myDateString = new DateTimeFormatter("longdate").Format(DateTime.Today); 给出myDateString=”星期四, 12 十月 2017年“ 试着像这样把它转换回来 DateTime myDate = DateTime.Parse(myDateString, CultureInfo.CurrentCulture, DateTimeStyles.A
string myDateString = new DateTimeFormatter("longdate").Format(DateTime.Today);
给出myDateString=”星期四, 12 十月 2017年“
试着像这样把它转换回来
DateTime myDate = DateTime.Parse(myDateString, CultureInfo.CurrentCulture, DateTimeStyles.AssumeLocal);
DateTime myDate = DateTime.ParseExact(myDateString, "longdate", CultureInfo.CurrentCulture);
抛出System.FormatException
试着像这样把它转换回来
DateTime myDate = DateTime.Parse(myDateString, CultureInfo.CurrentCulture, DateTimeStyles.AssumeLocal);
DateTime myDate = DateTime.ParseExact(myDateString, "longdate", CultureInfo.CurrentCulture);
还抛出System.FormatException
然后我把我的机器给我们。myDateString=”的值星期四, 十月 12 2017年“
但当我尝试将其转换回datetime时,这也会抛出一个System.FormatException
如何使用当前区域性将长日期字符串转换为C语言中的日期时间?阅读一些日期时间格式 相关的堆栈日志: 日期时间的基本知识: 使用示例 一个基本的例子:
DateTime d = DateTime.Now;
DateTime ut = d.ToUniversalTime();
// Defines a custom string format to display the DateTime value.
// zzzz specifies the full time zone offset.
String format = "MM/dd/yyyy hh:mm:sszzz";
String utcstr = utcdt.ToString(format);
Console.WriteLine(utcstr);
编辑:小型控制台应用程序示例
static void Main(string[] args)
{
string myDateString = "Thursday, 12 October 2017";
//Why use the above just get a new one for today in the correct format
//Or create your own converter
DateTime date = DateTime.Now;
CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
//or
var culture = System.Globalization.CultureInfo.CurrentCulture;
string test = currentCulture.ToString();
Console.WriteLine(date.ToString(CultureInfo.GetCultureInfo(test)));
Console.ReadLine();
}
阅读一些日期时间格式 相关的堆栈日志: 日期时间的基本知识: 使用示例 一个基本的例子:
DateTime d = DateTime.Now;
DateTime ut = d.ToUniversalTime();
// Defines a custom string format to display the DateTime value.
// zzzz specifies the full time zone offset.
String format = "MM/dd/yyyy hh:mm:sszzz";
String utcstr = utcdt.ToString(format);
Console.WriteLine(utcstr);
编辑:小型控制台应用程序示例
static void Main(string[] args)
{
string myDateString = "Thursday, 12 October 2017";
//Why use the above just get a new one for today in the correct format
//Or create your own converter
DateTime date = DateTime.Now;
CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
//or
var culture = System.Globalization.CultureInfo.CurrentCulture;
string test = currentCulture.ToString();
Console.WriteLine(date.ToString(CultureInfo.GetCultureInfo(test)));
Console.ReadLine();
}
@左杰伦在一篇文章中解释道
当我们使用DateTimeFormatter.Format方法时,在其返回值中有一些不可见的8206个字符
因此,正如@Corak所建议的,不要使用DateTimeFormatter
,而是使用ToString(“D”)
@Jay Zuo在中解释道
当我们使用DateTimeFormatter.Format方法时,在其返回值中有一些不可见的8206个字符
因此,正如@Corak所建议的,不要使用
DateTimeFormatter
,而是使用ToString(“D”)
您的长日期格式是什么?年月日?获取datetime,datetime d=datetime.Now;然后将其转换为任意格式的字符串,字符串s=d.ToString(“dd/MM/yyyy HH:MM:ss.fff”);DateTime.ParseExact
没有使用DateTimeFormatter
,因此我认为它不知道DateTimeFormatter(“longdate”)的格式。我假设这是UWP?如果是的话,我建议用这种方式标记它。此外,请提供为myDateString
获得的实际值。如果需要格式化字符串,这应该足够了:DateTime.Today.ToLongDateString(),如我的示例所示,将日期转换为字符串没有问题。问题是从长日期字符串转换回日期时间长日期格式是什么?年月日?获取datetime,datetime d=datetime.Now;然后将其转换为任意格式的字符串,字符串s=d.ToString(“dd/MM/yyyy HH:MM:ss.fff”);DateTime.ParseExact
没有使用DateTimeFormatter
,因此我认为它不知道DateTimeFormatter(“longdate”)的格式。我假设这是UWP?如果是的话,我建议用这种方式标记它。此外,请提供为myDateString
获得的实际值。如果需要格式化字符串,这应该足够了:DateTime.Today.ToLongDateString(),如我的示例所示,将日期转换为字符串没有问题。问题是从长日期字符串转换回DateTime感谢@JohnChris的建议,但我们不能指定这样的日期格式,因为我们必须使用用户计算机的区域性。再次感谢@JohnChris,但我们没有使用UTC。我们使用本地机器的文化。。。不管那可能在哪里好的。。我为当前的文化。。。但是我不明白为什么你要使用myDateString,如果它是一个无效的格式。解决方法是构建自己的转换器,以获取日期、月份和年份,并将其转换为正确的格式。是否要我为您编写一个转换器?mydateString不是无效格式。它是由“Windows.Globalization.DateTimeFormatting.DateTimeFormatter”(“longdate”)创建的标准长日期格式'谢谢@JohnChris的建议,但我们不能指定这样的日期格式,因为我们必须使用用户机器的文化。再次感谢@JohnChris,但我们没有使用UTC。我们使用本地机器的文化。。。不管那可能在哪里好的。。我为当前的文化。。。但是我不明白为什么你要使用myDateString,如果它是一个无效的格式。解决方法是构建自己的转换器,以获取日期、月份和年份,并将其转换为正确的格式。是否要我为您编写一个转换器?mydateString不是无效格式。它是由“Windows.Globalization.DateTimeFormatting.DateTimeFormatter”(“longdate”)创建的标准长日期格式“您的解决方案不是独立于文化的。请参阅上面的评论。这似乎是一个UWP问题。是的,如果您像new CultureInfo((int)CultureType.AllCultures)一样使用CultureInfo,那么我认为哪种文化无关紧要。您的解决方案不是独立于文化的。请参阅上面的评论。这似乎是一个UWP问题。是的,如果您像使用new CultureInfo((int)CultureType.AllCultures)一样使用CultureInfo,那么我认为哪种文化不重要。