2009-11-18 39 views
0

顯示日期與時間,我預計這個工作:使用的區域設置在格式化

Public Shared Function ToShortDateTimeString(ByVal dateIn As Date) As String 
    Return dateIn.ToShortDateString & " " & dateIn.ToShortTimeString 
End Function 

日期越來越根據本地設置格式化的,但還不是時候。

我看過API示例,但是,dangit,這應該很容易,並且構建到框架中。

它爲什麼在日期工作,但不是時間?

例如,檢查出我的時刻顯示區域設置:

http://www.screencast.com/users/Dokmanc/folders/Jing/media/cbc07eeb-1f9c-4b27-b535-91b8acbffd8e

然而,上面的函數返回: 「11/17/2009下午8時29分32秒」

+0

可能會有所幫助,告訴我們你實際上得到,你想要什麼,例如。 – Noldorin 2009-11-18 01:30:45

+0

可能的重複:http://stackoverflow.com/questions/1292246/why-doesnt-datetime-toshorttimestring-respect-the-short-time-format-in-region – 2009-11-18 01:31:13

回答

0

試試這個:

Option Strict On 
Option Explicit On 

Imports Microsoft.VisualBasic 
Imports System.Globalization 

<System.Runtime.CompilerServices.Extension()> _ 
Module DateTimeExtensions 

    <System.Runtime.CompilerServices.Extension()> _ 
    Public Function ToShortTimeStringNoSeconds(ByVal ShortTimeIn As DateTime) As String 

     Dim DateTimeFormat As DateTimeFormatInfo = CultureInfo.CurrentCulture.DateTimeFormat 
     Dim ShortTimePattern As String = DateTimeFormat.LongTimePattern.Replace(":ss", String.Empty) 

     Return ShortTimeIn.ToString(ShortTimePattern) 

    End Function 'GetShortTimeString 

End Module 

Dim RegionallyFormattedTime As String = Now.ToShortTimeStringNoSeconds 
0

聽起來像一個.NET問題。

解決方法可能是:

dateIn.ToString("T", CultureInfo.CurrentUICulture.DateTimeFormat) 
1
Public Shared Function ToShortDateTimeString(ByVal dateIn As Date) As String 

     // g = short date and short time 
     Return dateIn.ToString("g", System.Globalization.DateTimeFormatInfo.CurrentInfo); 

End Function 
0

建立在什麼德米特里說:

要指定格式見 http://msdn.microsoft.com/en-us/library/az4se3k1(VS.96).aspx

這應該說明了不同的打印格式:

Dim myDateTime As New DateTime(2001, 5, 16, 3, 2, 15) 
    Console.WriteLine(myDateTime.ToString("d", CultureInfo.CurrentUICulture.DateTimeFormat)) 
    Console.WriteLine(myDateTime.ToString("t", CultureInfo.CurrentUICulture.DateTimeFormat)) 
    Console.WriteLine(myDateTime.ToString("d", CultureInfo.CreateSpecificCulture("ro-RO"))) 
    Console.WriteLine(myDateTime.ToString("t", CultureInfo.CreateSpecificCulture("ro-RO"))) 
    Console.WriteLine(myDateTime.ToString("t", CultureInfo.CurrentUICulture.DateTimeFormat)) 
    Console.WriteLine(myDateTime.ToShortDateString()) 
    Console.WriteLine(myDateTime.ToShortTimeString()) 

在您的特定情況下,我認爲你需要的是:

返回dateIn.ToString( 「d」,CultureInfo.CurrentUICulture.DateTimeFormat)& 「」 & dateIn.ToString( 「T」,CultureInfo.CurrentUICulture。 DateTimeFormat)

相關問題