为了账号安全,请及时绑定邮箱和手机立即绑定

C# winforms 中的日期时间

C# winforms 中的日期时间

C#
呼啦一阵风 2021-11-07 19:10:28
实际上我正在使用 .CSV 文件。我已将 .CSV 文件的所有数据放入 DataTable 中。代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Globalization;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace Revision1{    public partial class Form1 : Form    {        DataTable datable = new DataTable();        public Form1()        {            InitializeComponent();        }        private void browsebtn_Click(object sender, EventArgs e)        {            OpenFileDialog ofd = new OpenFileDialog();            ofd.Title = "Select .CSV ffile";            ofd.ShowDialog();            txtboxpath.Text = ofd.FileName;        }        private void operatebtn_Click(object sender, EventArgs e)        {            string filePath = txtboxpath.Text;            StreamReader sr = new StreamReader(filePath);            string line = sr.ReadLine();            string[] value = line.Split(',');            DataRow row;            foreach (string dc in value)            {                datable.Columns.Add(new DataColumn(dc));            }            while (!sr.EndOfStream)            {                value = sr.ReadLine().Split(',');                if (value.Length == datable.Columns.Count)                {                    row = datable.NewRow();                    row.ItemArray = value;                    datable.Rows.Add(row);                }            }        }        private void generatecsvbtn_Click(object sender, EventArgs e)        {        }    }}到现在一切都很好。.CSV 文件的 google drive 链接点击 for.csv 文件现在我正在检查以下条件,该条件也在最后一次 while 循环后的操作中:DateTime dt = DateTime.ParseExact(datable.Rows[0][1].ToString(),"dd-MM-yy HH:ss", CultureInfo.InvariantCulture);string s = dt.ToString();string s1 = datable.Rows[0][1].ToString();if(s==s1){                //code here}但是条件给出了错误的值。我如何修改我的代码以便条件为真?当我通过断点调试时,我得到以下值:dt = 11/30/2017 10:00:00 AMs = 30-NOV-2017 10:00:00 AMs1 = 30-11-2017 10:00
查看完整描述

2 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

您的问题与 CSV 文件或数据表无关。

您正在将string具有确切特定格式的 a解析为DateTime. 然后您将其转换DateTime回 astring但没有特定格式信息,因此转换使用区域性的默认格式DateTimestring.

如果要获得相同的结果,请在调用时使用相同的格式ToString

string s = dt.ToString("dd-MM-yy HH:ss");


查看完整回答
反对 回复 2021-11-07
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

您应该转换所有要比较的字符串DateTimes并进行比较。毕竟你想比较日期,而不是文本。该DateTime结构本身并不存储日期为格式,因此在这方面中性。根据原始文档

此属性的值表示自 0001 年 1 月 1 日午夜 12:00:00(公历中 0001 年 1 月 1 日 UTC 时间 0:00:00)以来经过的 100 纳秒间隔数 [... ]


查看完整回答
反对 回复 2021-11-07
  • 2 回答
  • 0 关注
  • 224 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信