none
Cdate como transformar em "dd\mm\yyyy" RRS feed

  • Pergunta

  • Pesosal estou tentando usar a função CDate com a seguinte data que está como string "14/09/2010"

    mais a benditada função está convertendo para 9/14/2010 como posso fazer para manter dd\mm\yyyy.

    vlw

    terça-feira, 3 de agosto de 2010 15:01

Respostas

  • Achei uma solução... eu ia usar a função datadiff para fazer o calculo então fiz da seguinte maneira.

    Datadiff("Aqui não me lembro rsrs",today,format(parâmetro,"mm/dd/yyyy") )

    eu convertir a data de entrada para mm/dd/yyyy.

    não sei porque isso acontece, no access 2007 também acontece a mesma coisa, tenho que usar a função format na query pois apesar de o campo está definido como data no padrão dd/mm/yyyy toda vez que vou trazer um resultado baseado na data n funciona, mais quando coloco um format para o padrão mm/dd/yyyy funciona.

    é incrivel eu abro o banco e vejo as datas todas no formato certo, as confirações regionais também estão no formto correto, mais não funciona tenho que usar o format, lol.

    vlw a todos pela ajuda. ^^

    sexta-feira, 6 de agosto de 2010 02:43

Todas as Respostas

  • Tentei o seguinte cod.

    auxData =

    CDate(dgvProxAtend.CurrentRow.Cells(3).Value.ToString).ToString("dd-MM-yyyy")

    a = Format(auxData,

    "dd-MM-yyyy")

    "AuxData" é Date,   "a" é String

    usando "a" como string funciona a data fica como quero(14/09/2010), mais se "a" for data ele fica 9/14/2010

    minhas configurações regionais estão dd\mm\yyyy, o que poderá ser isso?

    terça-feira, 3 de agosto de 2010 15:34
  • Ricardo,

    Não entendi... O código abaixo funciona normalmente aqui:

        Dim data As String = "14/09/2010"
        Dim datetime As DateTime = CDate(data)
    
        MessageBox.Show(datetime.Day & " - " & datetime.Month & " - " & datetime.Year)
        MessageBox.Show(datetime.ToString("dd/MM/yyyy"))

    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    terça-feira, 3 de agosto de 2010 16:50
    Moderador
  • Ricardo tente o seguinte:

    Dim data As String = "14/09/2010"
        Dim dateFormat As DateTimeFormatInfo = New DateTimeFormatInfo()
        dateFormat.ShortDatePattern = "dd/MM/yyyy"
    
        Dim datetime As DateTime = Convert.ToDateTime(data, dateFormat)
    terça-feira, 3 de agosto de 2010 17:13
  • André,

    O QUE ACONTECE É O SEGUINTE:

    SE EU DER MESSAGEBOX.SHOW(Format(auxData,"dd-MM-yyyy")), FUNCIONA PERFEITAMENTE IMPRIMIRI 14/09/2010

    MAIS SE EU FIZER A=Format(auxData,"dd-MM-yyyy"), "A" não recebe 14/09/2010 e sim 9/14/2010 MAIS QUANDO DECLARO "A" COMO STRING FUNCIONA "A" REBECE 14/09/2010.

    O PROBLEMA É QUE PRECIDO ATRIBUIR ESSE VALOR A UMA VARIAVEL DO TIPO DATA PQ IREI UTILIZA-LO PARA FAZER CALCULO COM DATAS.

    ESPERO QUE N TENHA FICADO MTO ENROLADO.

    VLW

    terça-feira, 3 de agosto de 2010 17:22
  • Ricardo,

    Desculpe, mas, ainda não consegui entender o problema... :D

    Ao fazer o CDate("14/09/2010") você estará jogando o valor transformado em uma variável do tipo DateTime e o valor recebe corretamente esse valor... Se você fizer qualquer cálculo baseado nessa data, independente do formato que o seu quick watch esteja mostrando, vai dar certo...

    Poste o contexto que você quer trabalhar esse valor pra gente entender melhor... Que tipo de cálculo você quer fazer?


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    terça-feira, 3 de agosto de 2010 20:04
    Moderador
  • Hi,

    A linguagem do seu sistema operacional esta como ingles? geralmente e o idioma que interfere nas datas desse jeito...

    Att,


    codeco Adriel Codeco Silva
    Email: adriel.silva@uppercase.com.br
    MSN: adrielcodeco@hotmail.com
    Blog: adrielcodeco.wordpress.com
    Uppercase – www.uppercase.com.br
    quarta-feira, 4 de agosto de 2010 03:25
    Moderador
  • Achei uma solução... eu ia usar a função datadiff para fazer o calculo então fiz da seguinte maneira.

    Datadiff("Aqui não me lembro rsrs",today,format(parâmetro,"mm/dd/yyyy") )

    eu convertir a data de entrada para mm/dd/yyyy.

    não sei porque isso acontece, no access 2007 também acontece a mesma coisa, tenho que usar a função format na query pois apesar de o campo está definido como data no padrão dd/mm/yyyy toda vez que vou trazer um resultado baseado na data n funciona, mais quando coloco um format para o padrão mm/dd/yyyy funciona.

    é incrivel eu abro o banco e vejo as datas todas no formato certo, as confirações regionais também estão no formto correto, mais não funciona tenho que usar o format, lol.

    vlw a todos pela ajuda. ^^

    sexta-feira, 6 de agosto de 2010 02:43
  • Ola meu caro pelo q entendi vc qr converter este valor num dateTime mantendo a formatação original dele não pois bem muitas coisas podem ta interfirindo na hr de vc mostrar sua data q ela aparec desse gto uma delas pode ser a configuração regional do teu pc mas fazes o seguinte use a seguinte função.

    DateTime data = new DateTime();
    
    string minhaData = "14/09/2010";
    //isto irá testar tua string e converter ela numa data
    //apartir dai vc pode fazer validações com datas corretas
    //etc e tal usando-a em um if(..) por exemplo pois é uma função
    //q retorna bool e modifica o valor da varivel passada como out
    //se for um valor válido atribui seu valor a váriavel senão
    //a variavel fica com o valor -> "00/00/0000"
    
    DateTime.TryParse(minhaData, out data);
    
    //bom agora toda vez q vc for mostrar tua data para o usuário 
    //faças o seguinte formate ela no método
    // ToString("dd/MM/yyyy") que retornará a data do
    //gto q vc quer
    
    MessageBox.Show(data.ToString("dd/MM/yyyy"));
    
    //isto sempre apresentará a data no formato q vc deseja
    
    Att Edney se precisar estamos no fórum e se for útil só não se esqueça de marcar
    sexta-feira, 6 de agosto de 2010 03:28