Почему не работает преобразование между системной датой и временем по умолчанию в PersianCalendar? - PullRequest
0 голосов
/ 26 января 2019

У меня дата хранится в базе данных с использованием этой строки кода:

var now=DateTime.Now;

, поэтому после сохранения данные в базе данных такие же, как и после вызова объекта:

2019-01-26 17: 27: 46.297

, когда я пытаюсь преобразовать его в дату / время другой культуры, используя этот метод:

public static string ToPersianDate(this DateTime t)
    {
        var pc = new PersianCalendar();
       return $"{pc.GetYear(t)}/{pc.GetMonth(t)}/{pc.GetDayOfMonth(t)}";
    }

после использования этого метода:

var persianDate=now.ToPersianDate();

Я получаю эту строку в результате:

2019/01/26

Но я ожидал получить этот результат:

1397/11/06

1 Ответ

0 голосов
/ 26 января 2019

Вот полный пример, который преобразует время в PersianCalender,

using System;
using System.Globalization;

namespace ConsoleApp1
{
    public class Program
    { 
        public static void Main(String[] args)
        {
            var date = DateTime.Now;
            var str = date.ToPersianDate();
            Console.WriteLine(str);
            Console.Read();
        }
    }

    public static class Extender
    {
        public static string ToPersianDate(this DateTime t)
        {
            var pc = new PersianCalendar();
            return $"{pc.GetYear(t)}/{pc.GetMonth(t)}/{pc.GetDayOfMonth(t)}";
        }
    }
}

Ваша проблема не воспроизводима, код прилагается для дальнейшего использования

...