Как объединить дату + время и передать в поле CRM DateTime - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть 2 отдельных поля для ввода Date в (дд / мм / гггг) и поля Time для ввода чисел (2359).

Могу ли я узнать, как можно объединить два поля вместе, чтобы его можно было проанализировать как Date and Time поле в CRM?

Ниже приведен мой текущий фрагмент:

//dateValue
if (DateTime.TryParseExact(dateValue.ToString().Trim(), dateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out _))
{
    //timeValue (2359)
    if (!(string.IsNullOrEmpty(timeValue)))
    {
        bool isNumeric = int.TryParse(timeValue.ToString().Trim(), out _);

        if (isNumeric)
        {
            //dateTimeValue = dateValue + timeValue

            myEntity.Attributes[dateTimeField] = Convert.ToDateTime(dateTimeValue .ToString().Trim(), System.Globalization.CultureInfo.GetCultureInfo("hi-IN").DateTimeFormat);
        }
    }
}

1 Ответ

1 голос
/ 25 апреля 2020

Как насчет того, чтобы собрать части даты и времени вместе в одну строку и попробовать что-то вроде этого:

using System;
using System.Globalization;

public class Program
{
    public static void Main()
    {
        Console.WriteLine(ParseDateAndTime("24/04/2020", 2359));
        Console.WriteLine(ParseDateAndTime("1/1/2025", 1234));
        Console.WriteLine(ParseDateAndTime("15/7/1999", 123));
        Console.WriteLine(ParseDateAndTime("14/11/2005", null));
    }

    private static DateTime ParseDateAndTime(string dateValue, int? timeValue)
    {
        var combinedDate = $"{dateValue} {(timeValue ?? 0) / 100}:{(timeValue ?? 0) % 100}";

        return DateTime.ParseExact(combinedDate, "d/M/yyyy H:m", CultureInfo.InvariantCulture);
    }
}

Вывод сверху (в моем собственном локализованном американском месяце на дату, AM / Формат PM):

4/24/2020 11:59:00 PM
1/1/2025 12:34:00 PM
7/15/1999 1:23:00 AM
11/14/2005 12:00:00 AM
...