:/PM

2012-06-12 11 views
6

Yani ben 1400 olduğunu varsayalım dd ÖÖ ben şu çalıştı 14:00:/PM

dönüştürmek istiyorum:

Dim convertedTime As String = DateTime.ParseExact(theTime,"HHmm", Nothing) 

Ve bana bu verecekti:

6/12/2012 02:00:00 PM

istemiyorum tarih bölümü, saniyeler gerek yok. Tek ihtiyacım olan şey, bunu nasıl başardırabilirim? Teşekkürler!

+0

ParseExact bir dize döndürmez. Option Strict On var mı? –

cevap

10

ParseExact yöntemi, bir dize değil DateTime değerini döndürür. Bir string değişkenine atarsanız, standart formatı kullanan otomatik olarak dönüştüreceksiniz. Eğer belirli bir biçimde bunu istiyorsanız

ardından bir dize olarak DateTime değerini biçimlendirmek: Bunu başarmak için iki yol vardır

Dim d As DateTime = DateTime.ParseExact(theTime,"HHmm", Nothing); 
Dim convertedTime As String = d.ToString("hh:mm tt") 
+0

bir çekicilik gibi çalışın ~ – eastboundr

0

.

Seçenek 1 (standard date and time format strings kullanılarak):

Dim theTime As DateTime = new DateTime(2008, 4, 10, 6, 30, 0) 
Dim convertedTime As String = 
    theTime.ToString("t", CultureInfo.CreateSpecificCulture("en-us")) 

Seçenek 2 (kullanarak custom date and time format strings): Her iki durumda da

Dim theTime As DateTime = new DateTime(2008, 4, 10, 6, 30, 0) 
Dim convertedTime As String = theTime.ToString("hh:mm tt") 

convertedTime olacak 6:30 AM

+0

"En-us" kültürüne ihtiyacınız yok, 'CultureInfo.InvariantCulture' kullanabilirsiniz. –

+1

@TimSchmelter, CultureInfo.InvariantCulture kullanırken standart biçim dizgesi 't' AM/PM döndürmez. Bkz. Https://compilify.net/1u5 –

+0

Özür dileriz, haklısınız, seçenek 1 ve 2'deki farkları gözden kaçırdım. –

1
Dim theTime = New Date(2012, 6, 12, 14, 0, 0) 
Dim formatted = theTime.ToString("h:mm tt", Globalization.CultureInfo.InvariantCulture) 

Custom Date and Time Format Strings

+0

1400 parçasını ayrıştıran kodunuz eksik. – JDB

+0

@ Cyborgx37: Bu sorunun yanıltıcı kısmı. Aslında OP, 1400'ü bir DateTime ile ayrıştırmada sorun yaşamıyor: _ "...Ve bana bunu verecekti: 6/12/2012 02:00:00 Tarih bölümünü istemiyorum, saniyelerim de yok. İhtiyacım olan her şey 2:00 PM "_ Sadece bir DateTime değişkenini doğru biçimli bir String'e dönüştürmek istiyor. –

1

Label1.Text = Format(Now, "hh:mm"): Bu etiket ile text = 10:26

Label1.Text = Format(Now, "dddd dd, MMMM, YYYY"): label1'ın text = 10:26

Label1.Text = Format(Now, "hh:mm tt") (ya da her türlü zamandır) label1'ın text = Perşembe 21, Ağustos, 2014 ...

+0

Cevabınızı daha okunabilir hale getirdiğinden, doğru biçimlendirmeyi (inlinecode için backticks) kullandığınızdan emin olun. [help] (http://stackoverflow.com/help) ve editör araç çubuğunu test edin, böylece neyin mümkün olduğunu görün. – TimWolla

1
Label1.Text = Now.ToShortTimeString.ToString() (10:26 PM) 

Label1.Text = Now.ToLongTimeString.ToString() (10:26:30 PM) 
0

Bu Tek deneyin

(veya tarih ne olursa olsun)
Dim TimeNow As String 
    TimeNow = TimeOfDay.ToString("h:mm:ss tt") 
İlgili konular