2011-01-10 16 views
20

Jak przekonwertować format daty na format DD-MM-YYYY w języku C#? Szukam tylko formatu DD-MM-YYYY, a nie niczego innego.Jak przekonwertować format daty na format DD-MM-YYYY w języku C#

+0

Konwertujesz ciąg znaków na inny ciąg? Czy chcesz sformatować DateTime jako ciąg znaków w formacie "DD-MM-RRRR"? Który język: VB, C#, coś jeszcze? Podaj więcej informacji. – matt

+0

Należy pamiętać, że formatowanie ToString ("dd-MM-rrrr") uwzględnia wielkość liter. Jeśli użyjesz małymi literami M, nie dostaniesz miesiąca, coś, nad czym się natknąłem zbyt wiele razy, aby to policzyć. – DOK

Odpowiedz

7
string formattedDate = yourDate.ToString("dd-MM-yyyy"); 
+0

Wielkie dzięki za szybką odpowiedź, ale nie działa. Konwertuj z "ciągu" na błąd "System.IFormatProvider" Dostaję – saurav2109

42
string formatted = date.ToString("dd-MM-yyyy"); 

to zrobi.

Here to dobre referencje dla różnych formatów.

+0

Dzięki za szybką odpowiedź, ale jej nie działa..Błąd błąd dostaję .. can konwersji od 'string' do 'System.IFormatProvider' – saurav2109

+0

Jak się nazywasz? Wykonanie dokładnie tego, co napisałem, zadziała. Zobacz MSDN po więcej informacji http://msdn.microsoft.com/en-US/library/zdtaw1bw%28v=VS.100%29.aspx – alexn

+0

Wybieram datę rozpoczęcia i zakończenia z poniższego zapytania po tym, że używam dla pętli dla wszystkich wybranych wartości ... Proszę spojrzeć poniżej. hrms_job = hrms_job.Append ("SELECT [Job Code], [Job Name], [Data rozpoczęcia], [Data zakończenia] OD [hrms_job $]"); – saurav2109

4
DateTime dt = DateTime.Now; 

String.Format("{0:dd-MM-yyyy}", dt); 
+0

Wielkie dzięki za odpowiedź, ale to nie działa, ciąg .format nie da nam formatu DD-MM-RRRR, da format DD/MM/RRRR – saurav2109

+1

Działa dla mnie. Dane wyjściowe to 10-01-2011 – evilone

0

Czy masz zmienna data przechowywana jako String lub typu Date?

W takim przypadku trzeba będzie coś zrobić jak

DateTime myDate = null;

DateTime.TryParse(myString,myDate); 

lub

Convert.ToDateTime(myString); 

Można połączyć toString ("dd-mm-rrrr") na data zmienna

2

Najpierw konwertuj ciąg znaków na zmienną DateTime:

DateTime date = DateTime.Parse(your variable); 

następnie przekonwertować tę zmienną z powrotem do łańcucha w odpowiednim formacie:

String dateInString = date.ToString("dd-MM-yyyy"); 
+0

hrms_job = hrms_job.Append ("SELECT [Job Code], [Job Name], [Data rozpoczęcia], [Data zakończenia] OD [hrms_job $]"); dla (int iRowCount = 0; iRowCount saurav2109

+0

Poniżej znajduje się mój kod, przepraszam, że znowu przeszkadzam, ale nie szukam dokładnie tego, co chcę. Po twojej sugestii otrzymuję teraz DD-02 -YYYY, oznacza, że ​​otrzymuję miesięczną wartość, ale nie wszystkie. Proszę pomóżcie – saurav2109

+0

Dużo wszystkim. Mam rozwiązanie .. Robiłem DD-MM-RRRR, ale w rzeczywistości było to dd-MM-yyyy, które rozróżnia małe i wielkie litery. Dziękuję wszystkim za miłe wsparcie – saurav2109

2
DateTime s1 = System.Convert.ToDateTime(textbox.Trim()); 
     DateTime date = (s1); 
     String frmdt = date.ToString("dd-MM-yyyy"); 

zadziała

9

Tutaj jest metoda najprostsza.

Jest to wartość String: "13.05.2012"

DateTime _date; 
string day = ""; 

_date = DateTime.Parse("5/13/2012"); 
day = _date.ToString("dd-MMM-yyyy"); 

Będzie wyjście jak: 13-maj-2012

+0

Jego Prawidłowo –

0

wpadłem na ten sam problem. Musiałem dodać referencję na górze klasy i zmienić CultureInfo aktualnie wykonywanego wątku.

using System.Threading; 

string cultureName = "fr-CA"; 
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName); 

DateTime theDate = new DateTime(2015, 11, 06); 
theDate.ToString("g"); 
Console.WriteLine(theDate); 

Wszystko co musisz zrobić, to zmienić nazwę kultury, na przykład: "en-US" = United States "fr-FR" = francuskojęzycznych France "fr-CA" = francusko mówiąc Kanada etc ...

0

problemem jest to, że starasz się przekonwertować ciąg, więc najpierw trzeba oddać zmiennej na bieżąco, a potem zastosować coś takiego
string date = variableConvertedToDate.ToString("dd-MM-yyyy")
lub
string date = variableConvertedToDate.ToShortDateString() ja w tym przypadku wynik to dd/MM/rrrr.

1

Zaczynamy:

DateTime time = DateTime.Now; 
Console.WriteLine(time.Day + "-" + time.Month + "-" + time.Year); 

działa! :)

-1
var dateTimeString = "21‎-‎10‎-‎2014‎ ‎15‎:‎40‎:‎30"; 
dateTimeString = Regex.Replace(dateTimeString, @"[^\u0000-\u007F]", string.Empty); 

var inputFormat = "dd-MM-yyyy HH:mm:ss"; 
var outputFormat = "yyyy-MM-dd HH:mm:ss"; 
var dateTime = DateTime.ParseExact(dateTimeString, inputFormat, CultureInfo.InvariantCulture); 
var output = dateTime.ToString(outputFormat); 

Console.WriteLine(output); 

Spróbuj tego, działa dla mnie.

0

Od C# 6.0 roku (Visual Studio 2015 i nowsze), można po prostu użyć interpolowana ciąg formatowania:

var date = new DateTime(2017, 8, 3); 
var formattedDate = $"{date:dd-MM-yyyy}"; 
0

powrotną inObj == DBNull.Value? "": (Convert.ToDateTime (inObj)). ToString ("MM/dd/rrrr"). ToString();

-1
DateTime dt = DateTime.Now; 

String.Format("{0:dd-MM-yyyy}", dt);