2009-05-22 6 views
0

Je dois obtenir un champ de date de MM/jj/aaaa à aaaa/MM/jj dans vb.net mais devrait toujours être un champ de date par la suite afin que je puisse le faire correspondre à une date dans une base de données.Comment obtenir un champ de date de MM/jj/aaaa à aaaa/MM/jj dans vb.net

Pour l'instant tout ce que je réussis à faire est de le changer en une chaîne dans ce format.

J'ai essayé ce type de code qui ne fonctionnait pas non plus.

DateTime.Parse(yourDataAsAString).ToString("yyyy-MM-dd") 
fromDeString = String.Format("{0:yyyy/MM/dd}", aDate) 
fromDate = Format("{0:yyyy/MM/dd}", aDate) 

Toute aide serait beaucoup aprécié, merci

+0

Qu'est-ce que vous voulez dire par ne fonctionne pas? Qu'est-ce que "aDate"? –

+0

Je suis toujours à gauche avec la date dans un format de chaîne qui provoque une incompatibilité de type de données lorsque je fais une instruction select. – Domitius

+0

aDate est juste un aDate est un champ de date au format MM, jj, aaaa – Domitius

Répondre

0

Voici un exemple de module démontrant la fonctionnalité que vous désirez.

Imports System.Globalization 
Module Module1 
    Sub Main() 
     Dim culture As New CultureInfo("en-us", True) 
     Dim mmDDyy As String = "10/23/2009" 
     Dim realDate As Date = Date.ParseExact(mmDDyy, "mm/dd/yyyy", culture) 
     Dim yyMMdd As String = realDate.ToString("yyyy/MM/dd") 
    End Sub 

End Module 

Espérons que cela aide.

Cordialement Noel

+0

J'ai besoin de yyMMdd pour être "Dim yyMMdd AS Date" dans le format spécifié pas une chaîne. mais merci quand même – Domitius

+1

Vous manquez le point Domitius. La variable realDate est la date, en tant que date. yyMMDD est juste une représentation de chaîne de celui-ci. Changer realDate – Bigtoe

1

Vous n'êtes pas comprendre qu'un objet date ne stocke pas les chiffres dans un format particulier. La seule façon d'obtenir les chiffres formatés dans l'ordre que vous voulez est de le convertir en une chaîne. Pourquoi avez-vous besoin de les comparer dans un format particulier? Une date est une date, peu importe comment elle est formatée. 15/12/78 == 1978/12/15.

Si vous ne parvenez pas à comparer les dates de la base de données avec un objet de date dans VB, il est probable que la date à laquelle vous comparez dans la base de données vous soit renvoyée sous forme de chaîne. à un objet de date pour la comparaison.

Dim sDate As String = "2009/12/15" 'Get the date from the database and store it as a string 
Dim dDate As New Date(2009, 12, 15) 'Your date object, set to whatever date you want to compare against 

Select Case Date.Compare(dDate, Date.Parse(sDate)) 
    Case 0 
     'The dates are equal 
    Case Is > 0 
     'The date in the database is less 
    Case Is < 0 
     'The date in the database is greater 
End Select 
0

Votre deuxième devrait réellement fonctionner. Au lieu de cela, essayez:

dim chislo as date = date.now dim message As String = $" 
      Today`s Date: {String.Format("{0:dddd, dd/MM/yyyy}", Chislo)} " 
        MsgBox(message) 
Questions connexes