2017-10-02 4 views
1

En regardant simplement à travers le Microsot Standard Date and Time Format Strings pour trouver le spécificateur de format de date universel (aaaa-MM-jj). Je peux voir qu'il y en a un pour UniversalSortableDateTimePattern qui est "u". et les sorties de date comme:Spécificateur de format universel triable pour seulement la date

yyyy'-'MM'-'dd HH':'mm':'ss'Z' 

Je ne suis intéressé par la partie date et je ne veux pas vraiment garder tapant format personnalisé comme

date.ToString("yyyy-MM-dd"). 

Y at-il lettre de spécificateur de format pour universel date format? Ou la seule option est le format de date personnalisé?

Quelque chose comme DateTimeFormatInfo.UniversalSortableDatePattern

+0

Comme il est pas dans la liste votre seule option pour le faire sans utiliser un format personnalisé est en utilisant ' « d »' et spécifique culture (par exemple 'jp-JP' =>' aaaa/MM/jj') –

+0

Le meilleur que vous pourriez obtenir est 'var dt = DateTime.Now.ToString (" s ")' mais cela vous donne T, puis le temps après ainsi vous devez soit utiliser un format personnalisé comme vous le faites et le spécifier dans un fichier de configuration s'il survole plusieurs endroits ou si c'est dans un seul fichier de classe puis spécifier le format en lecture seule ou en valeur const –

+0

'date .ToString ("u"). Split ('') [0] '? –

Répondre

0

Je ne pense pas. Ce format est codé en dur sur datetimeformatinfo.cs dans mscorlib.

internal const String universalSortableDateTimePattern = "yyyy'-'MM'-'dd HH':'mm':'ss'Z'"; 

http://referencesource.microsoft.com/#mscorlib/system/globalization/datetimeformatinfo.cs,115

On dirait que vous n'avez pas trop de choix sur votre cas.

Il suffit d'utiliser;

date.ToString("yyyy'-'MM'-'dd") 

ou vous pouvez lire ce format ailleurs comme fichier de configuration, etc.

+0

C'est dommage qu'ils n'aient pas codé en dur pour 'aaaa-MM-jj' qui est la plupart du temps utilisé je crois. – akd

+0

@akd Désolé mais nous n'avons pas beaucoup d'options ici. –