Menyelesaikan masalah Ralat "Masa Tarikh Tidak Sah" dalam Penukaran Rentetan ke Tarikh
Menukar rentetan kepada objek DateTime kadangkala boleh mengakibatkan ralat "Masa Tarikh Tidak Sah", khususnya "Rentetan tidak dikenali sebagai Masa Tarikh yang sah." Ini biasanya berlaku apabila menggunakan DateTime.Parse
, yang tidak mempunyai keupayaan untuk menentukan format tarikh tertentu.
Penyelesaian adalah dengan menggunakan DateTime.ParseExact
. Kaedah ini membolehkan anda menentukan secara eksplisit format tarikh yang dijangkakan. Contohnya, jika rentetan anda dalam format "dd/MM/yyyy":
<code class="language-csharp">this.Text = "22/11/2009"; DateTime date = DateTime.ParseExact(this.Text, "dd/MM/yyyy", null); </code>
Argumen null
menggunakan tetapan budaya lalai sistem untuk pemformatan tarikh. Anda boleh menggantikan ini dengan budaya tertentu jika perlu.
Parse
lwn. ParseExact
Parse
: Kaedah yang kurang tepat yang cuba menghuraikan rentetan menggunakan pelbagai format tarikh biasa. Kegagalan mengakibatkan FormatException
.ParseExact
: Lebih mantap, memerlukan rentetan format yang tepat sebagai input. Ini menghalang ralat yang disebabkan oleh format yang tidak sepadan.Penyelesaian Optimum
Walaupun kedua-duanya menggunakan DateTime.ParseExact
dan pengesahan input adalah berkesan, mengutamakan pengesahan input adalah penting. Menggunakan teknik seperti kotak teks bertopeng memastikan bahawa hanya rentetan yang diformat dengan betul dihantar ke fungsi penukaran, menghalang ralat sebelum ia berlaku dan meningkatkan kebolehpercayaan aplikasi. Pendekatan proaktif ini lebih baik daripada hanya bergantung pada pengendalian ralat.
Atas ialah kandungan terperinci Bagaimana untuk memperbaiki 'String tidak diiktiraf sebagai kesilapan DateTime' yang sah semasa rentetan ke penukaran DateTime?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!