C# 日期时间表示和转换显示错误的日期
我正在尝试根据从请求中收到的参数创建新日期 我有以下代码:C# 日期时间表示和转换显示错误的日期,c#,C#,我正在尝试根据从请求中收到的参数创建新日期 我有以下代码: DateTime datefrom = DateTime.ParseExact(DateFromTextBox1.Text,"dd/mm/yyyy", CultureInfo.InvariantCulture).ToUniversalTime(); int hoursFrom = HourFromTextBox1.Text!=String.Empty?Convert.ToInt32(HourFromTextBox1.Text):0;
DateTime datefrom = DateTime.ParseExact(DateFromTextBox1.Text,"dd/mm/yyyy", CultureInfo.InvariantCulture).ToUniversalTime();
int hoursFrom = HourFromTextBox1.Text!=String.Empty?Convert.ToInt32(HourFromTextBox1.Text):0;
int minutesFrom = HourFromTextBox1.Text != String.Empty ? Convert.ToInt32(MinuteFromTextBox1.Text) : 0;
date1 = new DateTime(datefrom.Year, datefrom.Month, datefrom.Day, hoursFrom, minutesFrom, 0).ToString("yyyy-MM-dd HH:mm:ss");
我得到这样的东西:
2018-01-19 13:11:00
我尝试解析的初始日期是:
"20/10/2018"
时间和分钟是正确的。但是日子和月份不是
我认为输出是因为我的计算机上的时间是这样的:
2018年10月11日。这可能是一个文化问题
如何从预期中获得正确的日期?将时间转换为世界时,使结果不同。尝试将“dd/MM/yyyy”作为解析字符串<代码>“mm”在日期时间解析中用于分钟。有关日期时间自定义格式,请参阅本文档 前
希望您现在明白了您在第一行中使用的
dd/mm/yyyy
。您需要dd/MM/yyyy
。
DateTime datefrom = DateTime.ParseExact("20/10/2018","dd/MM/yyyy", CultureInfo.InvariantCulture);
Console.WriteLine(datefrom); //20.10.2018 00:00:00 without universal time
DateTime datefromUniversal = DateTime.ParseExact("20/10/2018","dd/MM/yyyy", CultureInfo.InvariantCulture).ToUniversalTime();
Console.WriteLine(datefromUniversal); //19.10.2018 22:00:00 with universal time
int hoursFrom = "13"!=String.Empty?Convert.ToInt32("13"):0;
int minutesFrom = "11" != String.Empty ? Convert.ToInt32("11") : 0;
var date1 = new DateTime(datefrom.Year, datefrom.Month, datefrom.Day, hoursFrom, minutesFrom, 0).ToString("yyyy-MM-dd HH:mm:ss");
Console.WriteLine(date1);