Конвертировать Double в Date? - PullRequest
0 голосов
/ 11 октября 2019

Я хочу преобразовать двойное значение в дату

        String firstdate =startdate.Text;
        String lastdate = enddate.Text;

        DateTime enteredDate1 = DateTime.Parse(firstdate);
        DateTime enteredDate2 = DateTime.Parse(lastdate);

        double stdate= enteredDate1.ToOADate();
        double endate = enteredDate2.ToOADate();


        sliderStartLabel.Text = "Year" + firstdate + "to";

        slider_TextBox_SliderExtender.Minimum = stdate;
        sliderEndLabel.Text = lastdate;
        slider_TextBox_SliderExtender.Maximum=endate;

        DateTime myDate = DateTime.FromOADate(stdate);

        String date = myDate.ToString("dd/MM/yyyy");

        slider_TextBox.Text = date;

Я ожидаю вывод в формате гггг / мм / дд, но я получил вывод в виде двойного значения (например: - 3456)

1 Ответ

0 голосов
/ 12 октября 2019

Если вы работаете с меткой времени Unix, такой как календарный контракт в Xamarin.android, тогда этот код будет работать нормально.

class Program
{
    static void Main(string[] args)
    {
        double d = 3456;
        long l= Convert.ToInt64(d);
        DateTime dt = new DateTime().AddMilliseconds(l);
        Console.WriteLine(dt);

        DateTime epoch = new DateTime(1970,1,1,0,0,0,0).AddMilliseconds(l);
        Console.WriteLine(epoch);

        DateTime now = DateTime.Now;
        Console.WriteLine(now);
        Console.WriteLine("Datetime");



        Console.ReadLine();
    }
    protected long GetDateTimeMS(DateTime dt)
    {
        DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime();
        return (long)(dt - epoch).TotalMilliseconds;
    }
}
...