簡體   English   中英

使用區域設置格式顯示帶時間的日期

[英]Displaying a date with time using region settings formating

我希望這可以工作:

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 PM”

您可以使用DateTimeFormatInfo強制設置所需的日期/時間格式:

DateTimeFormatInfo info = new DateTimeFormatInfo();
info.ShortTimePattern = "HH:mm";

DateTime.Now.ToString(info.ShortTimePattern);

編輯:請檢查上一個問題: 為什么DateTime.ToShortTimeString()不遵守“區域和語言設置”中的短時間格式?

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

聽起來像是.NET問題。

解決方法可能是:

dateIn.ToString("T", CultureInfo.CurrentUICulture.DateTimeFormat)

dmitriy說的是:

要指定格式,請參見http://msdn.microsoft.com/zh-cn/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)

嘗試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM