2009-11-18 36 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)

相关问题