سؤال

وأنا أكتب ملف CSV. لست بحاجة لكتابة الطوابع الزمنية التي هي دقيقة على الأقل للثاني، ويفضل أن يكون لميلي ثانية واحدة. ما هو أفضل شكل للالطوابع الزمنية في ملف CSV بحيث يمكن تحليل دقيق وبشكل لا لبس فيه من قبل Excel مع تدخل المستخدم الحد الأدنى؟

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

المحلول

لدقة الثانية، س س س س-MM-DD HH: مم: SS ينبغي أن تفعل خدعة

وأعتقد إكسل ليست جيدة جدا مع أجزاء من الثانية (يفقد لهم عند التعامل مع IIRC كائن COM).

نصائح أخرى

واقتراح سابق لاستخدام "س س س س-MM-DD HH: MM: SS" على ما يرام، على الرغم من أنني أعتقد إكسل لديها الكثير من الوقت قرار أدق من ذلك. أجد هذا المنصب مصداقية إلى حد ما (متابعة موضوع وسترى الكثير من العمليات الحسابية وتجريب مع Excel)، وإذا كان صحيحا، سيكون لديك ميلي ثانية الخاص بك. يمكنك تك فقط على المنازل العشرية في النهاية، أي "YYYY-MM-DD HH: مم: ss.000".

ويجب عليك أن تدرك أن Excel قد لا بالضرورة تنسيق البيانات (دون تدخل بشري) في مثل هذه الطريقة التي سوف ترى كل ذلك بدقة. على جهاز الكمبيوتر الخاص بي في العمل، وعندما أقوم بإعداد CSV مع "س س س س-MM-DD HH: MM: ss.000" البيانات (من ناحية استخدام المفكرة)، وأحصل على "مم: ss.0" في الخلية و "م / د / س س س س ح ح: مم: SS AM / PM "في شريط الصيغة

لأقصى قدر من المعلومات [1] نقلت في الخلايا دون تدخل بشري، قد ترغب في تقسيم الزمني الخاص بك إلى جزء التاريخ وجزء الوقت، مع جزء الوقت فقط للثاني. يبدو لي وكأنه يريد Excel لتعطيك على الأكثر ثلاثة "مستويات" مرئية (حيث كسور من الثانية هي مستواها الخاص) في أي خلية معينة، وتريد السبعة: السنوات أو الشهور والأيام والساعات والدقائق والثواني، وكسور من الثانية.

وأو، إذا كنت لا تحتاج الطابع الزمني أن يكون الإنسان قابل للقراءة ولكنك تريد أن تكون دقيقة قدر الإمكان، قد تفضل فقط لتخزين عدد كبير (داخليا، إكسل هو مجرد استخدام عدد من الأيام، بما في ذلك أيام كسور، وذلك لأن "عصر" التاريخ).


[1] وهذا هو، المعلومات الرقمية. إذا كنت تريد أن ترى أكبر قدر من المعلومات ممكن ولكن لا يهتمون إجراء الحسابات معها، هل يمكن أن تجعل بعض الشكل الذي سيقوم Excel بالتأكيد تحليل كسلسلة، وبالتالي ترك وحده. مثلا "yyyymmdd.hhmmss.000".

و"ح ح-س س س س MM-: دد: ss.000" شكل لا يعمل في جميع المناطق. بالنسبة لبعض (على الأقل الدنماركي) "ح ح-س س س س MM-: دد: ث، 000" سوف تعمل على نحو أفضل

.

وأعتقد إذا كنت تستخدم نوع البيانات double، وإعادة حساب في Excel سوف تعمل على ما يرام.

وانتقل إلى إعدادات اللغة في لوحة التحكم، ثم تهيئة خيارات، حدد لغة ورؤية تنسيق التاريخ الفعلي للغة المختارة التي يستخدمها ويندوز بشكل افتراضي. نعم، هذا الشكل الطابع الزمني-الإعدادات المحلية الحساسة. يستخدم Excel تلك الأشكال عند تحليل CSV.

وحتى أبعد من ذلك، إذا كانت لغة تستخدم الأحرف خارج ASCII، سيكون لديك لتنبعث منها CSV في مرحلة ما قبل يونيكود ويندوز "ANSI" مخطط الشفرة، على سبيل المثال المقابلة CP1251. سيقوم Excel لا يقبل UTF-8.

وأما بالنسبة الزمنية. لدي لتخزين UTC تعويض كما ثواني من UTC أن الصيغ الطريقة اكسل / أوبن أوفيس يمكن توطين في نهاية المطاف datetimes. لقد وجدت هذا ليكون أسهل من تخزين أي عدد يحتوي على 0 في أمامه. -0900 لم يتم تحليل بشكل جيد في أي نظام البيانات واستيراده كان من المستحيل تقريبا لتدريب الناس على القيام به.

<اقتباس فقرة>   

و"ح ح س س س س-MM-DD: مم: ss.000" شكل لا يعمل في جميع المناطق. إلى عن على   بعض (على الأقل الدنماركية) ".-MM-DD س س س س ح ح: MM: SS، 000" سوف تعمل على نحو أفضل

وكما وردت من قبل user662894.

وأريد أن أضيف: لا تحاول الحصول على ميكروثانية من، مثلا، نوع البيانات SQL datetime2 ملقم: لا يمكن ل Excel التعامل مع أكثر من 3 ثوان كسور (أي ميلي ثانية)

.

وهكذا "YYYY-MM-DD HH: مم: ss.000000" لن تعمل، وعندما يتم تغذية إكسل هذا النوع من سلسلة (من ملف CSV)، فإنه سوف تؤدي <م> التقريب بدلا من <م> اقتطاع .

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

وحاول MM / يوم / سنة HH: MM: SS شكل

وجافا البرمجية لإنشاء ملف XML.

<اقتباس فقرة>   <اقتباس فقرة>     

وxmlResponse.append ( "mydate>"). إلحاق (this.formatDate (resultSet.getTimestamp ( "تاريخ")،     "MM / يوم / سنة HH: MM: SS ل".)) إلحاق ( "")؛

  
public String formatDate(Date date, String format)
{
    String dateString = "";
    if(null != date)
    {
        SimpleDateFormat dateFormat = new SimpleDateFormat(format);
        dateString = dateFormat.format(date);
    }
    return dateString;
}

وهكذا، بغرابة التفوق واردات تاريخ CSV بطرق مختلفة. و ، يعرضها حسب مختلف على التنسيق المستخدم في ملف CSV. للأسف شكل ISO 8061 يأتي في كسلسلة. الذي يمنعك من المحتمل إعادة تهيئة تاريخ بنفسك.

وجميع تلك افعل تأتي في كتاريخ ... تحتوي على معلومات كاملة ... لكنهم تهيئة مختلف ... إذا كنت لا ترغب في ذلك يمكنك اختيار شكل جديد للعمود في التفوق و سيعمل. (ملاحظة: يمكنك أن تقول أنها جاءت في كتاريخ / وقت صالح لأنها سوف تبرر حق ... إذا كان الأمر في كسلسلة فإنه ترك تبرير)

وفيما يلي نماذج اختبار لي:

و"س س س س-MM-DD" تظهر حتى موعدا لبالطبع عندما افتتح في التفوق. (أيضا "MM / يوم / سنة" تعمل)

و"س س س س-MM-DD HH: MM: SS" تنسيق العرض الافتراضي هو "MM / يوم / سنة HH: مم" (تاريخ ووقت ث / ثانية)

و"س س س س-MM-DD HH: مم: ss.fff" تنسيق العرض الافتراضي هو "HH: MM: SS" (المرة الوحيدة ث / ثانية)

واعتقد ان ذلك ISO-شكل هو فكرة جيدة. ( ويكيبيديا المقالة ، وأيضا مع معلومات الوقت)

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