كيف يمكنك تعيين تنسيق التاريخ عالميًا في ASP.NET؟

StackOverflow https://stackoverflow.com/questions/300841

  •  08-07-2019
  •  | 
  •  

سؤال

كيف يمكنك تعيين تنسيق التاريخ عالميًا في ASP.NET؟

تم ضبط الإعدادات الإقليمية على الجهاز والخوادم المحلية الخاصة بي على "الإنجليزية (نيوزيلندا)".

عندما أقوم بتنسيق موعد مع dd/MM/yyyy أتوقع أن أرى 19/11/2008 لهذا اليوم على سبيل المثال.

حتى وقت قريب، كان هذا ما حصلت عليه بالفعل من جهازي المحلي ومن الخوادم.

في الآونة الأخيرة، ولسبب غامض، تغيرت أجهزتنا المحلية بشكل طفيف.على الرغم من أنه لا يزال مضبوطًا على "الإنجليزية (نيوزيلندا)"، فقد تغير محدد التاريخ من / ل -!لم يحدث نفس التغيير على الخوادم التي لا تزال تعرض "الإنجليزية (نيوزيلندا)" و / لمحدد التاريخ.

والآن بالنسبة لجهازي المحلي، بالنسبة للتنسيق dd/MM/yyyy انا حصلت 19-11-2008 بدلاً من 19/11/2008.

وهذا أمر مقلق بعض الشيء.

الطريقة الوحيدة التي يمكنني رؤيتها حتى الآن للتغلب عليها هي الهروب من الخطوط المائلة وضبط التنسيق على ذلك dd\/MM\/yyyy.يبدو أنه يعمل، ولكن لا يبدو أنه الحل الأمثل.

يمكن لأي شخص الرجاء المساعدة؟

ملحوظة:هذا لتطبيق إنترانت ولا أهتم بالعولمة الحقيقية.أريد فقط إصلاح تنسيق التاريخ وعدم تغييره علي.

هل كانت مفيدة؟

المحلول

يمكنك تغيير ثقافة موضوع الحالية في ملف Global.asax الخاص بك، وتجاوز تنسيق التاريخ على سبيل المثال:

using System.Globalization;
using System.Threading;

//...
protected void Application_BeginRequest(Object sender, EventArgs e)
{    
  CultureInfo newCulture = (CultureInfo) System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
  newCulture.DateTimeFormat.ShortDatePattern = "dd-MMM-yyyy";
  newCulture.DateTimeFormat.DateSeparator = "-";
  Thread.CurrentThread.CurrentCulture = newCulture;
}

نصائح أخرى

في الملف web.config، تعيين العلامة كما في <لأ href = "http://msdn.microsoft.com/en-us/library/vstudio/hy4kkhe0٪28v=vs.100٪29.aspx" يختلط = " noreferrer "> ما يلي الوثائق

<system.web>
    <globalization  culture="en-NZ"  uiCulture="en-NZ"/>
</system.web>

وهناك طريقة جيدة لتكوين الملف web.config، تنسيق التاريخ تظهر في كل مكونات ASPX

<system.web>    
<globalization uiCulture="en" culture="en-NZ" />
</system.web>

ويمكنك تعيين ثقافتك دون التلاعب:


using System.Globalization;
using System.Threading;

//... protected void Application_BeginRequest(Object sender, EventArgs e) {
Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-NZ"); }

إنه منشور قديم، لكنني أعتقد أنه قد يكون من المفيد ذكره هنا، كانت مشكلتي شيئًا مثل ما طلبه OP، ولكن الحل كان أنه تم تغيير الثقافة في IIS، وليس من لوحة التحكم.

يتمتع IIS باختيار الثقافة الخاصة به، والتي ستتبع بشكل افتراضي ثقافة الكمبيوتر المحلية.ولكن لسبب ما، تم تغييرها إلى ثقافة مختلفة، وبدأت في الحصول على تنسيقات التاريخ الغريبة تلك.

يمكنك البحث عن المزيد من الإجابات هنا.

لسلاسل التنسيق، والطابع شكل / لا حل فعلا لالحرفي "/" كما كنت تتوقع. بدلا من ذلك، يحل إلى فاصل التاريخ والوقت الحالي كما تم تكوينها في الإعدادات الإقليمية الخاصة بك. محاولة تغيير الخاصية DateTimeFormatInfo.DateSeparator.

لمزيد من المعلومات، راجع: http://msdn.microsoft.com /en-us/library/8kb3ddd4.aspx

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top