2012-10-20 14 views
5

Il formato di data del mio sistema è gg-MM-aaaa (20-10-2012) e sto ricevendo la data e utilizzando il separatore per dividere la data, il mese e l'anno. Ho bisogno di convertire il formato della data (gg/MM/aaaa) se i formati restituiti in qualsiasi formato data.Ottenere la data di sistema e il giorno separato, il mese e l'anno

string sDate = string.Empty; 
DateTime _date = DateTime.Now; 
int count = 0; 
string format = "dd-MM-yyyy"; 
sDate = dateFormat.ToString(format); 
string[] Words = sDate.Split(new char[] { '-' }); 
foreach (string Word in Words) 
{ 
    count += 1; 
    if (count == 1) { Day = Word; } 
    if (count == 2) { Month = Word; } 
    if (count == 3) { Year = Word; } 
} 
+1

duplicati di: http: //stackoverflow.com/questions/12985802/im-getting-cultureinfo-invariantculture-format-for-mm-dd-yyyy-but-i-want- to-ge – SearchAndResQ

+4

Se hai già l'oggetto 'DateTime', perché non puoi semplicemente usare le proprietà definite su di esso? 'Year',' Month' e 'Day' dovrebbero darti i valori che ti servono direttamente. Non vedo il punto di convertirsi in una stringa con cui poi si scherza per estrarre dati che sono già facilmente raggiungibili. – Oded

+0

@Oded sono totalmente d'accordo con te ..... – Ram

risposta

6

Si dovrebbe usare DateTime.TryParseExcact se si conosce il formato, o se non e si desidera utilizzare le impostazioni di sistema DateTime.TryParse. E per stampare la data, DateTime.ToString con il giusto formato nell'argomento. Per ottenere l'anno, mese o giorno hai DateTime.Year, DateTime.Month o DateTime.Day.

Vedere DateTime Structures in MSDN per ulteriori riferimenti.

+2

+1 Non eseguire il proprio codice di gestione data/ora. –

11

Si può fare come segue:

String date = DateTime.Now.Date.ToString(); 
    String Month = DateTime.Now.Month.ToString(); 
    String Year = DateTime.Now.Year.ToString(); 

Sul luogo del datetime è possibile utilizzare la colonna ..

+0

C'è una condizione di competizione nell'esempio, molto vicino a mezzanotte in alcuni giorni. –

1

Senza aprire un IDE per controllare il mio cervello funziona correttamente per la sintassi in questo momento della giornata ...

Se si desidera semplicemente la data in un formato particolare, è possibile utilizzare DateTime's .ToString(string format). Esistono numerosi esempi di stringhe di formattazione standard e personalizzate se segui quel collegamento.

Così

DateTime _date = DateTime.Now; 
var _dateString = _date.ToString("dd/MM/yyyy"); 

darebbe la data come una stringa nel formato da lei richiesto.

15

Ecco quello che stai cercando:

String sDate = DateTime.Now.ToString(); 
DateTime datevalue = (Convert.ToDateTime(sDate.ToString())); 

String dy = datevalue.Day.ToString(); 
String mn = datevalue.Month.ToString(); 
String yy = datevalue.Year.ToString(); 

O

In alternativa, è possibile utilizzare la funzione di divisione per split string date into day, month and year qui.

Spero, ti aiuterà ... Saluti. !!

+0

Non voglio essere scortese, ma sai cosa fa lo snippet di codice? Perché si crea un oggetto DateTime, quindi si chiama ToString() due volte e si converte nuovamente in DateTime in modo da poter chiamare ToString() una terza volta? Tutto ciò che serve è DateTime dateValue = DateTime.Now; –

+0

@BojidarStanchev Caro Mi aspetto una stringa di data come input (sebbene sia un oggetto DateTime) come richiesto dall'utente. Quindi questo è solo per caso d'uso. Non volevo disturbare l'utente con diversi tipi di formati di cultura in fase di esecuzione. Quindi questa era solo una regola di base. Lo scopo principale era mostrare come separare facilmente giorno, mese, anno dalla stringa della data. –

3

È possibile dividere data mese anno dalla data corrente come segue:

DateTime todaysDate = DateTime.Now.Date;

Giorno:

int day = todaysDate.Day;

Mese:

int month = todaysDate.Month;

Anno:

int year = todaysDate.Year;

Problemi correlati