Преобразовать дату yy/mm/dd в yy/mm

175
18 ноября 2021, 23:50

В ASP.NET приложении я получаю дату из базы данных таким методом:

public class MonthController : ApiController
    {
        public List<Month> monthContainer;
        public List<Month> getMonth()
        {
            DataContext dataContext = new DataContext();
            monthContainer = (from d in dataContext.Duties
                              select new Month()
                              {
                                  MonthDate = d.Date
                              }).ToList();
            return monthContainer;
        }

В ответе приходит дата в таком формате:

{
    "MonthDate": "2015-10-01T00:00:00"
},
{
    "MonthDate": "2015-10-02T00:00:00"
}

И так выходит каждый день месяца MonthDate до определенного года.

Как я могу вывести только месяца в таком формате без дублей?

"MonthDate": "2015-10"
"MonthDate": "2015-11"
"MonthDate": "2015-12"
"MonthDate": "2016-01"
Answer 1

Решением стало добавление к модели Month нескольких классов, которые преобразовывают JSON

class CustomDateTimeConverter : IsoDateTimeConverter
{
    public CustomDateTimeConverter()
    {
        base.DateTimeFormat = "yyyy-MM-dd";
    }
}
public class DateFormatConverter : IsoDateTimeConverter
{
    public DateFormatConverter(string format)
    {
        DateTimeFormat = format;
    }
}
public class Month
{
    [JsonConverter(typeof(DateFormatConverter), "yyyy-MM")]
    public DateTime MonthDate { get; set; }
}

и добавление

using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
Answer 2

Можно так

monthContainer = dataContext.Duties
                            .Select(d=>d.ToString("yyyy-MM"))
                            .Distinct() 
                            .ToList();  
return monthContainer;

И поменять тип модели во вью на IEnumerable<string>.

READ ALSO
Запрос на выборку из 2-х таблиц SQL

Запрос на выборку из 2-х таблиц SQL

Есть две таблицы вида:

103
Вращение изображения c#

Вращение изображения c#

Всем привет, Сразу к делу : Моя задача вращать картинку в pictureBox (есть ракета, она должна плавно отклоняться на угол от -30° до 30° в зависимости...

101
Работа с mysql c#

Работа с mysql c#

ПодскажитеЯ кодил в большинстве случаях на php и в основном на yii2

194