Bagaimana cara mengonversi DateTime ke/dari format string tertentu (keduanya, misalnya Format yang diberikan adalah yyyyMMdd)?

Saya mengalami masalah saat mengonversi tanggalwaktu dalam format string tetapi saya tidak dapat mengonversinya menggunakan format "yyyyMMdd".

Kode saya adalah:

string tpoc = refSubClaim.BenefitsFolder.BenefitFolderIdNumber.ToString();
string[] tpocinfo = Regex.Split(tpoc,";");

for (int i = 0; i < tpocinfo.Length; i++)
{
    switch (i)
    {
        case 0:
        {
            string[] tpoc2 = Regex.Split(tpocinfo[0], ",");
            claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
            claimantAuxillaryRecord.TPOCAmount2 = Convert.ToDecimal(tpoc2[1]);
            claimantAuxillaryRecord.FundingDelayedBeyondTPOCStartDate2 = tpoc2[2].ToString();
        }
        break;

person Ashutosh    schedule 13.08.2010    source sumber
comment
Apa format string datetime saat ini?   -  person Falle1234    schedule 13.08.2010
comment
Dan apa relevansi cuplikan kode Anda dengan pertanyaan?   -  person Darin Dimitrov    schedule 13.08.2010
comment
Saya sedikit tidak jelas; apakah Anda bekerja dengan representasi string tanggal, atau objek DateTime? Dengan asumsi itu adalah objek DateTime, Anda cukup memanggil obj.ToString("yyyyMMdd");   -  person Nathan Taylor    schedule 13.08.2010
comment
Sebenarnya TPOCDate2 sudah menjadi variabel dan saya hanya ingin mengonversi elemen di tpoc2[0] menjadi format yyyyMMdd. Semoga ini menjawab pertanyaan Anda   -  person Ashutosh    schedule 13.08.2010
comment
Apakah Anda terjebak di suatu tempat?   -  person Dariusz Woźniak    schedule 15.08.2010
comment
kemungkinan duplikat Apa cara paling sederhana untuk memformat .NET DateTime menurut YYYYMMDD atau sejenisnya?   -  person John Conde    schedule 28.07.2012
comment
coba Convert.ToDateTime(tpoc2[0]).ToString(yyyyMMdd);   -  person A. Zalonis    schedule 21.09.2016


Jawaban (14)


jika Anda memiliki tanggal dalam string dengan format "ddMMyyyy" dan ingin mengonversinya menjadi "yyyyMMdd" Anda dapat melakukan seperti ini:

DateTime dt = DateTime.ParseExact(dateString, "ddMMyyyy", 
                                  CultureInfo.InvariantCulture);
dt.ToString("yyyyMMdd");
person Falle1234    schedule 13.08.2010
comment
Terjebak dengan kode Anda, yang ini berfungsi dengan baik DateTime.TryParse(stringValue, out outputInDateTime); - person DJ'; 15.09.2014


Anda dapat mengonversi string Anda menjadi nilai DateTime seperti ini:

DateTime date = DateTime.Parse(something);

Anda dapat mengonversi nilai DateTime menjadi string yang diformat seperti ini:

date.ToString("yyyyMMdd");
person SLaks    schedule 13.08.2010

String ke format tanggal tttt-MM-hh: Contoh:

TxtCalStDate.Text = Convert.ToDateTime(objItem["StartDate"]).ToString("yyyy/MM/dd");   
person NSiva    schedule 17.02.2013

Jika Anda ingin memiliki DATE sebagai string dengan TIME juga. Kita bisa melakukan seperti ini:

    //Date and Time is taking as current system Date-Time    
    DateTime.Now.ToString("yyyyMMdd-HHmmss");
person Anish    schedule 29.07.2015
comment
menit seharusnya kecil m!? yyyyMMdd-HHmmss - person CeOnSql; 25.01.2016

Gunakan DateTime.TryParseExact() jika Anda ingin mencocokkan dengan format tanggal tertentu

   string format = "yyyyMMdd"; 
    DateTime dateTime;
    DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
                                             DateTimeStyles.None, out dateTime);
person Mudassir Hasan    schedule 19.04.2013

Anda dapat menggunakan DateTime.TryParse() alih-alih DateTime.Parse().
Dengan TryParse() Anda memiliki nilai kembalian jika berhasil dan dengan Parse() Anda harus menangani pengecualian

person peter    schedule 13.08.2010

Cukup lakukan saja dengan cara ini.

string yourFormat = DateTime.Now.ToString("yyyyMMdd");

Selamat coding :)

person Prashant-Systematix    schedule 31.01.2017

bukan string dengan yyyy/mm/dd dan saya membutuhkannya dalam format yyyyMMdd

Jika Anda hanya perlu menghilangkan garis miring dari sebuah string, bukankah Anda menggantinya saja?

Contoh:

myDateString = "2013/03/28";
myDateString = myDateString.Replace("/", "");

myDateString sekarang seharusnya menjadi "20130328".

Kurang berlebihan :)

person SergioMSCosta    schedule 28.03.2013

Ini cara sederhana untuk mengkonversi ke format

 DateTime.Now.ToString("yyyyMMdd");
person manoj kumar    schedule 26.07.2016

Berdasarkan nama properti, sepertinya Anda mencoba mengonversi string menjadi tanggal berdasarkan tugas:

claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();

Hal ini mungkin disebabkan oleh budaya UI saat ini dan oleh karena itu tidak dapat menafsirkan string tanggal dengan benar ketika ditetapkan.

person Peter    schedule 13.08.2010
comment
bukan string dengan yyyy/mm/dd dan saya membutuhkannya dalam format yyyyMMdd - person Ashutosh; 13.08.2010
comment
dan saat melakukan ClaimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString(yyyyMMdd); itu memberikan beberapa kesalahan build. Metode kelebihan beban terbaik yang cocok untuk 'string.ToString(System.IFormatProvider)' memiliki beberapa argumen yang tidak valid - person Ashutosh; 13.08.2010
comment
@ Matt - benarkah? Anda mengedit respons 4+ tahun yang bahkan tidak ditandai sebagai jawaban untuk menambahkan tab? Itu adalah kasus OCD yang sangat buruk yang Anda alami. - person Peter; 18.11.2015

Dari C#6:

var dateTimeUtcAsString = $"{DateTime.UtcNow:o}";

Hasilnya adalah: "2019-01-15T11:46:33.2752667Z"

person ben alfasi    schedule 15.01.2019

Cara yang lebih sederhana yang saya temukan saat mencari jawaban ini juga;

string date = DateTime.Now.ToString("yyyyMMdd", System.Globalization.CultureInfo.GetCultureInfo("en-US"));
person Enrique Ortiz Sánchez    schedule 30.01.2014
comment
Bagaimana kalau saya punya nilai untuk DateTime? Suka DateTime newDate = DateTime.Parse(Session["date"].ToString());? - person WTFZane; 14.03.2017

Anda dapat mencoba kode-kode ini

claimantAuxillaryRecord.TPOCDate2  = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd"); 

Or

claimantAuxillaryRecord.TPOCDate2 = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd hh:mm:ss"); 
person A. Zalonis    schedule 21.09.2016
comment
Demi Tuhan (tuan penyelamat kami Harambe), jangan pernah gunakan Convert.ToDateTime... Hal ini sangat lambat (~100ms)! Cukup gunakan ParseExact atau TryParse - waaaaay lebih cepat!!! - person Koshera; 05.11.2016