arvindispra Ответов: 3

Как отформатировать datetime


Мне нужен такой тип вывода
OutPut: CreatedDate:2017-11-01 11:22:22.931,  ActiveOn:2017-11-01 11:22:22.931

public class GetActivePro
{
	public DateTime CreatedDate { get; set; }
    public DateTime ActiveOn { get; set; }
}

Я использую переменную dateTime в своем классе , если я преобразую свою переменную .ToString(), он показывает ошибку преобразования.
GetActivePro acpro = new GetActivePro();
acpro.CreatedDate = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt")

отображение ошибки :
cannot implicitly convert type string to system.datetime


Теперь я использую следующий код но выводится он в другом формате,

Что я уже пробовал:

public class GetActivePro
{
	public DateTime CreatedDate { get; set; }
    public DateTime ActiveOn { get; set; }
}
private object GetCustomDate()
{
	GetActivePro acpro = new GetActivePro();
	acpro.CreatedDate = DateTime.Now;
	acpro.ActiveOn = DateTime.Now;
	

	return new
	{
		success = true,
		Acpro = acpro
	 };

}

OutPut is : CreatedDate:20171101112222931,  ActiveOn:20171101112222931

3 Ответов

Рейтинг:
2

OriginalGriff

Дата-Время не имеет формата. Это просто "момент времени", который хранится в виде количества тиков с определенной даты и момента времени в прошлом.

То, что вы пытаетесь сделать, это установить значение DateTime в форматированную строку:

public DateTime CreatedDate { get; set; }
acpro.CreatedDate = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt");
Вы не можете этого сделать, и даже если вы проанализируете строку обратно в DateTime (используя TryParse или TryParseExact), она не сохранит свое форматирование.

Вы применяете форматирование к Datetime, когда готовите его к выходу, вы не можете применить его в любое другое время!
acpro.CreatedDate = DateTime.Now;
А позже используйте ToString для отображения значения.


Рейтинг:
1

Mehdi Gholam

DateTime это не так string так что просто делай:

acpro.CreatedDate = DateTime.Now;

Если вам нужно показать DateTime в виде строки, то к преобразованию строки:
string str = acpro.CreatedDate.ToString("yyyy-MM-dd hh:mm:ss")


Рейтинг:
1

BillWoodruff

const string DTFormat = "yyyy-MM-dd hh:mm:ss.fff";

// sample usage:

// string dtformatted = DateTime.Now.ToString(DTFormat);
// Console.WriteLine(DateTime.Now.ToString(DTFormat));