0

迷惑な小さなエラーが発生しており、それが原因である理由を一生理解できません。以下に示すように、データを保存しているxmlファイルがあります。

- <EmployeeFinance>
  <EmployeeEmploy_Id>5584</EmployeeEmploy_Id> 
  <EmpPersonal_Id>30358</EmpPersonal_Id> 
  <No_DaysWorked>30</No_DaysWorked> 
  <Date_Appointment>17/02/2012</Date_Appointment> 
  <Date_Employment>02/05/1984</Date_Employment> 
  <Date_Termination>01/01/0001</Date_Termination> 
  <Payperiod_StartDate>01/01/2013</Payperiod_StartDate> 
  <Payperiod_EndDate>31/01/2013</Payperiod_EndDate> 
  <BatchNumber>38</BatchNumber> 
  <PAYE_ToDate_Computed>0</PAYE_ToDate_Computed> 
  <Income_Tax_RateID>0</Income_Tax_RateID> 
  <NIS_RateID>0</NIS_RateID> 
  <NIS_weeks_worked>0</NIS_weeks_worked> 
  </EmployeeFinance>

Payperiod_StartDate、Payperiod_EndDate、Date_Appointment などの日付ノードを見ると、すべて同じ形式になっています。私のC#コードでは、xmlファイルから選択するクエリを書くと、文字列が有効なDateTimeエラーとして認識されませんでした。他のすべての日付をコメントアウトしてstart_dateを残すと、機能します。それらは同じフォーマットです。何が間違っているのかわかりません。私を助けてください。

    var context = new SSPModel.sspEntities();
    XElement xelement = XElement.Load(GlobalClass.GlobalUrl);
    XDocument doc = XDocument.Load(GlobalClass.GlobalUrl);

    var query = from nm in xelement.Elements("EmployeeFinance")
                select new EmployeeEmploy
                {
                    Employee_Personal_InfoEmp_id = (int)nm.Element("EmpPersonal_Id"),
                    Substantive_designation = (int)nm.Element("Position_Id"),
                    Grade_Id = (int)nm.Element("Grade_Id"),
                    PositionTotal_PtBasic = (double)nm.Element("Sum_AllPosition"),//part of basic
                    GradeTotal_PtBasic = (double)nm.Element("Sum_AllGrade"), //part of basic
                    Housing_Allowance = (double)nm.Element("Housing"),
                    Base_Pay = (double)nm.Element("Base_Pay"),
                    startDate = (DateTime)nm.Element("Payperiod_StartDate"),
                    endDate = (DateTime)nm.Element("Payperiod_EndDate"),
                    Date_of_Appointment = (DateTime)nm.Element("Date_Appointment"),
                   Date_of_Employment = (DateTime)nm.Element("Date_Employment"),
                    Termination_date_actual = (DateTime)nm.Element("Date_Termination"),
                    Base_Pay_Currency = (string)nm.Element("Currency"),
                    Exchange_rate = (double)nm.Element("Exchange_Rate")
                };
    var x = query.ToList();
    foreach (var xy in x) {
        Debug.WriteLine(xy.endDate);
    }
4

2 に答える 2

1

17/02/2012は有効な日付ではありませんが、です02/17/2012。日付は として解析されmm/dd/yyyyます。1 つのオプションは、DateTime.ParseExactddを使用して、最初の数値セットとして日付を解析することです。例えば

var startDate = DateTime.ParseExact("17/02/2012", "dd/MM/yyyy", null);
于 2013-06-10T14:37:04.853 に答える