0

我不是程序員,但我在Visual Studio中開發了一個小公司網站。我想在主頁上顯示日期 - 以特定的文化格式。我有這個在我的正常aspx頁面之一的頂端:我的網站是本地化的,但我在asp.net中顯示當前日期時遇到困難4

<%@ Page Title="USS Vision Control Panel Build" Language="VB" MasterPageFile="~/Services/Services.Master" AutoEventWireup="false" 
CodeFile="controlpanels.aspx.vb" Inherits="controlpanels" culture="auto" meta:resourcekey="PageResource1" uiculture="auto" %> 

我跟着很多ASP教程的網站上,並已正確顯示在我的網頁上唯一的代碼如下:

<p><%= DateTime.Now.ToString() %></p> 

以上代碼的結果是:

1/18/2012 5:17:36 AM 

的問題是,我在美國東部時間,而時間在太平洋時間就出來了。我想我不希望它包含時間,因爲時間是靜態的,而且是錯誤的時區,而且它不是一秒一秒地更新。總而言之,我想我寧願只包含日期。這對我的網站來說似乎更專業。

有沒有人知道我能做些什麼來解決這個問題?

感謝您提供任何幫助!

傑森·韋伯

+0

您確定您在電腦設置中選擇了美國東部時間嗎? –

+0

從MSDN檢查[此](http://msdn.microsoft.com/en-us/library/bz9tc508.aspx)文章。 –

+0

感謝Mesiesta和Amar。 Diamond,Paul和User都給出了非常好的答案。在這個過程中,我學到了很多東西,並最終使用了Diamond的解決方案。感謝您花時間回覆! –

回答

2

這會讓你沒有時間的當前日期。

DateTime.Today.ToString(System.Globalization.CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern) 

運行它產生的輸出:

1/18/2012

+0

它將來自服務器的日期,而不是來自客戶端的日期。 –

+0

這就是我要找的鑽石。當我輸入代碼時,它將CultureInfo強調爲藍色,並說我必須生成我嘗試過的'Class CultureInfo',但它不會讓我。然後我選擇了另一個選項來生成一個新類,Visual Studio爲我創建了CultureInfo.vb,但這也不起作用。它也給了我一個錯誤;最後,說'期望聲明結束'。任何建議,將不勝感激,並衷心感謝您花時間回覆! –

+0

嘗試輸入'System.Globalization.CultureInfo'而不是'CultureInfo'。此外,我沒有充分了解您的示例,意識到您使用的是VB而不是C#。從語句末尾刪除分號。我會更新我的答案。 –

1

您可以指定格式字符串作爲您的調用的參數來.ToString()

例如

DateTime.Now.ToString("dd-MMM-yy") 

收益率: -

18-Jan-2012 

至少在今天,無論如何。

請參見本文的格式選項的詳細信息。

http://msdn.microsoft.com/en-us/library/az4se3k1%28v=vs.100%29.aspx

注意,來自服務器的任何日期將在服務器的本地時間。

如果你想報告的客戶端的日期,它可能是一個更容易去一個JavaScript解決方案(將使用您的用戶計算機上的日期)。

+0

如果你想使用javascript設置它,那麼你可以做這樣的事情,其中​​是你想顯示日期的控件的ID。 'var date = new Date(); document.getElementById('').value = date.getDate();' –

+0

這很有效,Paul。謝謝你的解決方案!如果可能的話,我想花一點點時間,並根據最終用戶的位置顯示日期。所以如果他們在德國,我希望它把德國的日期放在那裏。我的所有文件的頂部都有文化=「auto」meta:resourcekey =「PageResource1」uiculture =「auto」。感謝您花時間回覆我的問題,Paul;非常感謝! –

+0

我想通了,保羅...如何獲得本地化的longdate格式。再次感謝! –

1

格式字符串正確,您可以使用:

<p><%= DateTime.Now.ToString("MM/dd/yyyy") %></p> 

,這將給你2012年1月18日(注大寫字母'M')。

如果你想顯示基於用戶位置的本地時間,而不是服務器時,您可以使用。

<p><%= DateTime.Now.ToLocalString.ToString() %></p> 

希望這會有所幫助。

+0

嗨用戶。感謝您的答覆!當我嘗試這個: –

+0

嗨用戶。當我嘗試你的解決方案時,錯誤信息出現在Visual Studio中,說'LocalString'不是'Date'的成員,它以藍色下劃線作爲錯誤,並且不顯示該頁面。有什麼建議麼?並感謝您花時間回覆!我非常感謝你的幫助! –

+0

用戶,您的第一個解決方案效果很好!我希望根據最終用戶的設置顯示時間/日期。所以如果他們在德國,我希望它能顯示德國的日期和時間。這就是爲什麼我嘗試了第二種解決方案,但它給了我上面描述的錯誤信息。再次感謝你的幫助我的時間! –

相關問題