Kode yang dimaksud adalah di bawah ini:
public static string ChangePersianDate(DateTime dateTime)
{
System.Globalization.GregorianCalendar PC = new System.Globalization.GregorianCalendar();
PC.CalendarType = System.Globalization.GregorianCalendarTypes.USEnglish;
return
PC.GetYear(dateTime).ToString()
+ "/"
+ PC.GetMonth(dateTime).ToString()
+ "/"
+ PC.GetDayOfMonth(dateTime).ToString()
+ ""
+ PC.GetHour(dateTime).ToString()
+ ":"
+ PC.GetMinute(dateTime).ToString()
+ ":"
+ PC.GetSecond(dateTime).ToString()
+ " "
????????????????
}
bagaimana saya bisa mendapatkan AM / PM dari dateTime
nilai?
c#
.net
datetime
datetime-format
gregorian-calendar
SilverLight
sumber
sumber
DateTime
dari ini. Lihat msdn.microsoft.com/en-us/library/8kb3ddd4.aspxdateTime.ToString("tt");
Jawaban:
Bagaimana tentang:
sumber
CultureInfo.InvariantCulture
ToString("tt", System.Globalization.CultureInfo.InvariantCulture)
DateTime.Now.AddHours(12).ToString("tt", CultureInfo.InvariantCulture)
Ini akan memberi Anda nilai string waktu. Seharusnya menambahkan am / pm.
Anda juga dapat melihat topik terkait:
Bagaimana Anda mendapatkan waktu hari ini?
sumber
hh
karena representasi Anda saat ini menghasilkan dalam 24 jam waktu dengan am dan pm yang agak tidak bergunaThe
DateTime
harus selalu secara internal dalam "Amerika" (Gregorian) kalender. Jadi, jika Anda melakukannyaAnda harus mendapatkan apa yang Anda inginkan dalam banyak baris.
sumber
Sangat sederhana dengan menggunakan format string
di
.ToSTring("") :
jika Anda menggunakan "hh" - >> Jam, menggunakan jam 12 jam dari 01 hingga 12.
jika Anda menggunakan "HH" - >> Jam, menggunakan jam 24 jam dari 00 hingga 23.
jika Anda menambahkan "tt" - >> The Am / Pm designator.
contoh konversi dari 23:12 ke 11:12 Pm:
tunggu sebentar yang tidak semua Anda perlu peduli tentang sesuatu yang lain adalah sistem Budaya karena kode yang sama dijalankan pada windows dengan bahasa lainnya terutama dengan bahasa budaya difrent akan menghasilkan hasil difrent dengan kode yang sama
contoh windows diatur ke budaya bahasa Arab akan menunjukkan seperti itu:
// 23:12 م
م berarti Evening (kata pertama dari مساء).
dalam budaya sistem lain tergantung pada apa yang diatur pada windows regional dan opsi bahasa, ia akan menampilkan // 23:12 du.
Anda dapat mengubah antara berbagai format pada panel kontrol windows di bawah windows regional dan bahasa -> format saat ini (kotak kombo) dan mengubah ... menerapkannya melakukan membangun kembali (mengeksekusi) aplikasi Anda dan menonton apa yang saya bicarakan.
mudah hanya dengan menambahkan dua baris: ->
langkah pertama tambahkan
using System.Globalization;
di atas kode Andadan mengubah kode Sebelumnya menjadi seperti ini:
InvariantCulture => menggunakan Format Bahasa Inggris default.
pertanyaan lain saya ingin memiliki pm dalam bahasa Arab atau bahasa tertentu, bahkan jika saya menggunakan windows diatur ke bahasa Inggris (atau bahasa lain) format regional?
Contoh untuk Contoh Bahasa Arab:
ini akan menunjukkan // 23:12 م
acara jika sistem saya diatur ke format wilayah Inggris. Anda dapat mengubah "ar-AE" jika Anda ingin format bahasa lain. ada daftar setiap bahasa dan formatnya.
contoh:
beri tahu saya jika Anda memiliki pertanyaan lain.
sumber
Saya tahu ini mungkin tampak sangat terlambat .. namun mungkin membantu seseorang di luar sana
Saya ingin mendapatkan bagian AM PM dari tanggal tersebut, jadi saya menggunakan apa yang disarankan Andy:
Saya menggunakan bagian itu untuk membuat Path untuk menyimpan file saya .. Saya membuat asumsi bahwa saya akan mendapatkan AM atau PM dan tidak ada yang lain !!
namun ketika saya menggunakan PC yang budayanya bukan bahasa Inggris .. (dalam kasus saya ARABIC) .. aplikasi saya gagal karena format "tt" mengembalikan sesuatu yang baru bukan AM atau PM (م atau ص) ..
Jadi perbaikan untuk ini adalah dengan mengabaikan budaya dengan menambahkan argumen kedua sebagai berikut:
.. tentu saja Anda harus menambahkan: using System.Globalization; di atas file ur saya harap itu akan membantu seseorang :)
sumber
ini cukup sederhana
sumber
Sebagai contoh Anda tetapi ada cara yang lebih baik untuk memformat datetime.
sumber
Dari: http://www.csharp-examples.net/string-format-datetime/
sumber
Sesuatu seperti
bool isPM = GetHour() > 11
. Tetapi jika Anda ingin memformat tanggal ke string, Anda tidak perlu melakukan ini sendiri. Gunakan fungsi format tanggal untuk itu.sumber
Anda dapat mengujinya dengan cara ini
Outputnya akan seperti ini:
atau
sumber
Now
Ini adalah cara yang lebih mudah untuk menulis format waktu
(hh:mm:ss tt)
dan menampilkannya secara terpisah jika diinginkan.atau cukup dengan:
sumber
@ Jawaban Andy baik-baik saja. Tetapi jika Anda ingin menunjukkan waktu tanpa format 24 jam maka Anda dapat mengikuti seperti ini
Setelah itu, Anda harus mendapatkan waktu seperti "10:35:20" atau "10:35:20"
sumber
sumber
Berikut beberapa contoh kode:
sumber
ToLongTimeString()
mengembalikan nilai berdasarkan budaya utas saat ini. Dan tidak seperti beberapa solusi serupa yang diberikan dalam jawaban lain, kode ini bahkan tidak akan berfungsi jika Anda mengatur kultur utasInvariantCulture
, karena kultur invarianLongTimePattern
— yang menentukan nilai kembalinyaToLongTimeString()
— adalahHH:mm:ss
.