C# Converter formatos de datetime

alfinete

Power Member
Bom dia


Código:
DateTime NewDateAnoMesDia = DateTime.MaxValue;
DateTime Mydate = new DateTime(2020, 10, 16, 0, 0, 0);

 string StrMyFormatDate = Mydate.ToString("yyyy/MM/dd");
 
 NewDateAnoMesDia = DateTime.Parse(StrMyFormatDate);


resultados


Mydate {16/10/2020 00:00:00}

StrMyFormatDate = "2020/10/16";

NewDateAnoMesDia {16/10/2020 00:00:00}




eu quero devolver uma data no formato "yyyy/MM/dd" na var NewDateAnoMesDia

para alem desta tentativa , já experimentei outras mas sem efeito possítico
e por mais que a converta - devolve sempre "dd/MM/yyyy"


Agradecia Uma Auda para esta situação caso possível ?
 
Isso muito provavelmente tem a ver com a cultura que a tua thread está a correr. Verifica qual é.
O formato tu consegues definir quando tens uma string, agora convertendo para DateTime ele usa o formato da cultura.
 
Obrigado

pois ai esta o problema de converter para datetime , ele utiliza a cultura do sistema

tive de resolver assim por js


Código:
function GetFormatedDate (dateObject) {
    const options = {

        year: 'numeric',
        month: 'numeric',
        day: 'numeric',
    };
    var newdate = new Date(dateObject);

    var StrDate = newdate.toLocaleDateString('en-US', options);

    var DateParts = StrDate.split("/")

    var NewDate = (StrDate == "1/1/1900" || StrDate == "01/01/1900") ? "" : DateParts[2] + "-" + (DateParts[1].length == 1 ? "0" + DateParts[1] : DateParts[1]) + "-" + (DateParts[0].length == 1 ? "0" + DateParts[0] : DateParts[0]);


    return NewDate;
};
 
em c# pode ser assim [Resolvido]

string strdate = "2025-01-07";



CultureInfo cultureInfo = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
cultureInfo.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd";
cultureInfo.DateTimeFormat.DateSeparator = "-";
Thread.CurrentThread.CurrentCulture = cultureInfo;

DateTime Dt = DateTime.Parse(strdate);
 
Última edição:
Back
Topo