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);