سؤال

ما هي أفضل طريقة لتحديد موقع تنسيق تاريخ واصف?

مثل أي شخص من الثقافة التي لا تستخدم mm/dd/yyyy يعلم أنه أمر مزعج أن أدخل التواريخ في هذا الشكل.على .NET framework يوفر بعض جيدة جدا دعم التوطين ، حتى انها تافهة تحليل التواريخ وفقا المستخدمين الثقافة ، ولكن في كثير من الأحيان تريد أيضا عرض تلميح مفيد كما أن الشكل المطلوب (خاصة للتمييز بين yy yyyy وهي قابلة للتبديل في معظم الثقافات).

ما هي أفضل طريقة للقيام بذلك بطريقة منطقية لمعظم المستخدمين (على سبيل المثالdd/م/yyy هو مربكة بسبب تغيير في حالة التبديل بين واحد واثنين الحروف).

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

المحلول 3

هنا هو بلدي الأسلوب الحالي.أي اقتراحات ؟

Regex singleMToDoubleRegex = new Regex("(?<!m)m(?!m)");
Regex singleDToDoubleRegex = new Regex("(?<!d)d(?!d)");
CultureInfo currentCulture = CultureInfo.CurrentUICulture;

// If the culture is netural there is no date pattern to use, so use the default.
if (currentCulture.IsNeutralCulture)
{
    currentCulture = CultureInfo.InvariantCulture;
}

// Massage the format into a more general user friendly form.
string shortDatePattern = CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern.ToLower();
shortDatePattern = singleMToDoubleRegex.Replace(shortDatePattern, "mm");
shortDatePattern = singleDToDoubleRegex.Replace(shortDatePattern, "dd");

نصائح أخرى

مجرد استخدام ISO-8601.إنه معيار دولي.

Date and time (current at page generation) expressed according to ISO 8601:
Date:                           2014-07-05
Combined date and time in UTC:  2014-07-05T04:00:25+00:00
                                2014-07-05T04:00:25Z
Week:                           2014-W27
Date with week number:          2014-W27-6
Ordinal date:                   2014-186

يجب أن نتفق مع OP 'خطأ' التواريخ حقا جرة مع DD/MM/YYYY تربية أجد ISO 8601 التواريخ والأوقات من السهل للغاية للعمل مع.لمرة واحدة القياسية حصلت على حق engtech وقد الإجابة الواضحة التي لا تحتاج إلى توطين.

كنت ذاهبا إلى تقرير عيد ميلاد مدخلات النموذج على تجاوز سعة المكدس كما الخلل بسبب كم من قرحة الإبهام هو أن الغالبية العظمى من العالم.

مشكلة مع المعايير الدولية هو أنه تقريبا لا أحد يستخدم لهم.أحاول أين يمكنني لكنني أجبرت على استخدام dd/mm/yyyy في كل مكان تقريبا في الحياة الحقيقية ، مما يعني أنا معتاد على ذلك انها دائما عملية واعية استخدام ISO-8601.بالنسبة لغالبية الناس الذين لا تحاول استخدام ISO-8601 أسوأ من ذلك.إذا كنت يمكن أن تدويل حيث يمكنك اعتقد انها ميزة كبيرة.

ماذا عن إعطاء شكل (mm/dd/yyyy أو dd/mm/yyyy) تليها نسخة مطبوعة من تاريخ اليوم في ثقافة المستخدم.MSDN مقالا على تنسيق التاريخ والوقت على الشخص الثقافة, باستخدام CultureInfo كائن التي يمكن أن تكون مفيدة في القيام بذلك.مزيج من شكل (التي معظم الناس على دراية) جنبا إلى جنب مع التاريخ الحالي ممثلة في هذا الشكل يجب أن يكون ما يكفي من فكرة الشخص عن كيفية إدخال التاريخ.(تشمل أيضا تقويم التحكم بالنسبة لأولئك الذين لا يزال غير قادر على معرفة ذلك).

شكل قصيرة مريحة و يساعد على تجنب الأخطاء الإملائية.تعريب حسب الحالة ، ولكن يجب التأكد من عرض الصيغة المتوقعة (لا تترك المستخدم أعمى).تقديم موعد منقار السيطرة اختياري مساعد التعبئة في الميدان.

كما إضافي على ذبابة تحليل و عرض التاريخ في النموذج الطويل قد يساعد أيضا.

أفضل خيار:وأود أن بدلا من ذلك يوصي مستوى استخدام منتقي التاريخ.

البديل:في كل مرة محتويات عنصر تحكم تحرير التغييرات ، تحليل وعرض (مستقل السيطرة؟) طويلة تنسيق التاريخ (أي:الإدخال "03/04/09" عرض "المدخلات الخاصة بك:4 مارس 2009")

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