সিএসভি / এক্সেলের জন্য সেরা টাইমস্ট্যাম্প বিন্যাস?


110

আমি একটি সিএসভি ফাইল লিখছি। আমার টাইমস্ট্যাম্পগুলি লিখতে হবে যা কমপক্ষে দ্বিতীয় থেকে যথাযথ এবং মিলিসেকেন্ডে যথাযথ। কোনও সিএসভি ফাইলে টাইমস্ট্যাম্পগুলির জন্য সর্বোত্তম ফর্ম্যাট কী এমন যে তারা এক্সেল দ্বারা ন্যূনতম ব্যবহারকারীর হস্তক্ষেপে নির্ভুলভাবে এবং দ্ব্যর্থহীনভাবে পার্স করা যায়?


আউটপুট তৈরি করতে আপনি কোন ভাষা ব্যবহার করছেন?
পিটার পেরে

উত্তর:


104

দ্বিতীয় নির্ভুলতার জন্য, yyyy-MM-dd HH: মিমি: s এর কৌশলটি করা উচিত।

আমি বিশ্বাস করি যে সেকেন্ডের ভগ্নাংশের সাথে এক্সেল খুব ভাল নয় (সিওএম অবজেক্ট আইআইআরসি সাথে যোগাযোগ করার সময় সেগুলি হারাতে পারে)।


হ্যাঁ - আমি আপনাকে এবং ফ্রেড্রিকের সাথে একমত আপনি যদি এই উল্লেখগুলি খনন করতে পারতেন তবে আমি অবশ্যই কৃতজ্ঞ হব। ধন্যবাদ!

18
রুবির ব্যবহারকারী যে কোনও ব্যক্তির জন্য strftime, সমতুল্য যুক্তির স্ট্রিংটি হ'ল"%Y-%m-%d %H:%M:%S"
গ্রেগ ম্যাথু ক্রসলে

2
@ নিকফ - .CSVকেবল একটি পাঠ্য ফাইল। আপনি টাইমজোন বা অন্য যে কোনও কিছুই আপনি ফাইলটিতে কমা-বিচ্ছিন্ন প্লেইন পাঠ্য হিসাবে প্রদর্শন করতে পারেন; আপনার জন্য গুরুত্বপূর্ণ এমন কি আবেদন করা হবে পড়া এটা, এবং কিভাবে যে অ্যাপ্লিকেশান পাঠ্য আশা করা হয়। কংগ্রেসের লাইব্রেরি থেকে সিএসভি স্ট্যান্ডার্ডের জন্য এখানে ডকুমেন্টেশন রয়েছে । নির্দিষ্টভাবে তারিখ সংরক্ষণের কোনও নির্ধারিত উপায় নেই। এছাড়াও আরএফসি -১৪০০ এবং সিএসভি -১২০৩ //creativyst.com/ ডক / আর্টিকেলস / সিএসভি / সিএসভি 01.htm)।
ashleedawg

সি # / আয়রন পাইথন ফাইল GGetLastWriteTimeUtc ("আপনার পথ এখানে")। টুস্ট্রিং ("yyyy-% m-% d% এইচ:% এমএম:% ss")
কনরাডস

স্ট্রাইফটাইম () এর সাথে অজগরটিতে ফর্ম্যাটটিও হবে "%Y-%m-%d %H:%M:%S"- রুবির মতো।
rcronk

18

"Yyyy-MM-dd HH: mm: ss" ব্যবহারের পূর্বের পরামর্শটি ঠিক আছে, যদিও আমি বিশ্বাস করি এক্সেলের তুলনায় অনেক সূক্ষ্ম সময় রেজোলিউশন রয়েছে। আমি এই পোস্টটিকে বরং বিশ্বাসযোগ্য বলে মনে করি (থ্রেডটি অনুসরণ করুন এবং আপনি প্রচুর পাটিগণিত এবং এক্সেলের সাথে পরীক্ষাগুলি দেখতে পাবেন) এবং যদি এটি সঠিক হয় তবে আপনার মিলিসেকেন্ডগুলি থাকবে। আপনি কেবল দশমিক স্থানে শেষের দিকে দেখতে পারেন, যেমন "yyyy-mm-dd hh: mm: ss.000"।

আপনার সচেতন হওয়া উচিত যে এক্সেল অগত্যা ডেটা (মানব হস্তক্ষেপ ছাড়াই) এমনভাবে ফর্ম্যাট করতে পারে না যাতে আপনি সেই সমস্ত নির্ভুলতা দেখতে পাবেন। কর্মক্ষেত্রে আমার কম্পিউটারে যখন আমি "yyyy-mm-dd hh: mm: ss.000" ডেটা (নোটপ্যাড ব্যবহার করে হাতে) দিয়ে একটি সিএসভি সেট করি তখন আমি ঘরে "মিমি: এসএস.0" পাই এবং "এম / ডি / ইয়ি এইচ: মিমি: এসএস এএম / পিএম "সূত্র বারে।

মানুষের হস্তক্ষেপ ছাড়াই কোষগুলিতে জানানো সর্বাধিক তথ্যের জন্য [1], আপনি নিজের টাইমস্ট্যাম্পটি কেবলমাত্র তারিখের সাথে এবং একটি অংশের অংশে বিভক্ত করতে চাইতে পারেন, কেবল সময়ের অংশের সাথে দ্বিতীয় অংশে। এটি আমার কাছে দেখে মনে হচ্ছে যেমন এক্সেল আপনাকে প্রদত্ত যে কোনও ঘরে সর্বোচ্চ তিনটি দৃশ্যমান "স্তর" (যেখানে একটি সেকেন্ডের ভগ্নাংশগুলি তাদের নিজস্ব স্তরের) দিতে চায় এবং আপনি সাতটি চান: বছর, মাস, দিন, ঘন্টা, মিনিট, সেকেন্ড, এবং এক সেকেন্ডের ভগ্নাংশ।

অথবা, যদি আপনাকে মানব-পঠনযোগ্য হওয়ার জন্য টাইমস্ট্যাম্পের প্রয়োজন না হয় তবে আপনি এটি যথাসম্ভব যথাযথ হতে চান, তবে আপনি কেবলমাত্র একটি বৃহত সংখ্যা সঞ্চয় করতে পছন্দ করতে পারেন (অভ্যন্তরীণভাবে, এক্সেল কেবলমাত্র ভগ্নাংশের দিনগুলি সহ দিনগুলির সংখ্যা ব্যবহার করছে , একটি "যুগ" তারিখ থেকে)।


[1] এটি হচ্ছে, সংখ্যার তথ্য। আপনি যদি যথাসম্ভব তথ্য দেখতে চান তবে এটি দিয়ে গণনা করার বিষয়ে চিন্তা না করেন তবে আপনি এমন কিছু ফর্ম্যাট তৈরি করতে পারেন যা এক্সেল অবশ্যই একটি স্ট্রিং হিসাবে বিশ্লেষণ করবে এবং এভাবে একা চলে যাবে; যেমন "yyyymmdd.hhmmss.000"।


14

"yyyy-MM-dd hh: mm: ss.000" ফর্ম্যাটটি সমস্ত লোকালে কাজ করে না। কারও জন্য (কমপক্ষে ডেনিশ) "yyyy-MM-dd hh: mm: ss, 000" আরও ভাল কাজ করবে।


2
আশ্চর্যজনকভাবে এক্সেল 2010 মিলিসেকেন্ড অংশটি যখন 000 হয় তখন তারিখগুলি সনাক্ত করে না other
Dio এফ

4

আমি বিশ্বাস করি আপনি যদি doubleডেটা টাইপ ব্যবহার করেন তবে এক্সেলের পুনরায় গণনা ঠিকঠাক কাজ করবে।


আমি শুধু চেষ্টা করেছি এবং এটি সত্যিই দুর্দান্তভাবে কাজ করে। কেবল এক্সেলকেই বলতে হবে যে নির্দিষ্ট কলামের ফর্ম্যাটটি তারিখ / সময়। এটি সিএসভি থেকে স্বয়ংক্রিয়ভাবে এটি সনাক্ত করবে না কারণ এটি স্পষ্টতই ডেটা বর্ণনা করে না
পিটার পেরি

3

কন্ট্রোল প্যানেলে ভাষা সেটিংসে যান, তারপরে ফরমেট বিকল্পগুলি, একটি স্থানীয় নির্বাচন করুন এবং ডিফল্টরূপে উইন্ডোজ দ্বারা নির্বাচিত লোকেলে ব্যবহৃত প্রকৃত তারিখের ফর্ম্যাটটি দেখুন। হ্যাঁ, সেই টাইমস্ট্যাম্প ফর্ম্যাটটি লোকাল-সংবেদনশীল। সিএসভি পার্স করার সময় এক্সেল সেই ফর্ম্যাটগুলি ব্যবহার করে।

এরপরেও, লোকেল যদি ASCII এর বাইরে অক্ষর ব্যবহার করে তবে আপনাকে সংশ্লিষ্ট ইউনিকোড উইন্ডোজ "এএনএসআই" কোডপেজ, সিপি 1251 যেমন সিএসভি নির্গত করতে হবে। এক্সেল ইউটিএফ -8 গ্রহণ করবে না।


1

সময় অঞ্চল হিসাবে। আমাকে ইউটিসি থেকে অফসেটটি ইউটিসি থেকে সেকেন্ড হিসাবে সংরক্ষণ করতে হবে যে এক্সেল / ওপেন অফিসে সূত্রগুলি শেষ পর্যন্ত তারিখের স্থানীয়করণ করতে পারে। আমি এটির সামনে 0 টি আছে এমন কোনও সংখ্যা সঞ্চয় করার চেয়ে সহজ বলে মনে করেছি। -0900 কোনও স্প্রেডশিট সিস্টেমে ভাল পার্স করেনি এবং আমদানি করা লোকদের প্রশিক্ষণ দেওয়া প্রায় অসম্ভব ছিল।


1

"yyyy-mm-dd hh: mm: ss.000" ফর্ম্যাটটি সমস্ত লোকালে কাজ করে না। কারও জন্য (কমপক্ষে ডেনিশ) "yyyy-mm-dd hh: mm: ss, 000" আরও ভাল কাজ করবে।

হিসাবে ব্যবহারকারী 662894 দ্বারা উত্তর।

আমি যুক্ত করতে চাই: এসকিউএল সার্ভারের ডেটটাইম 2 ডাটাটাইপ থেকে মাইক্রোসেকেন্ডগুলি নেওয়ার চেষ্টা করবেন না: এক্সেল 3 ভগ্নাংশ সেকেন্ডের (অর্থাৎ মিলিসেকেন্ড) বেশি পরিচালনা করতে পারে না।

সুতরাং "YYYY-MM-DD HH: MM: ss.000000" হবে কাজ না, এবং যখন এক্সেল (CSV ফাইল থেকে) স্ট্রিং এই ধরনের খাওয়ানো হয়, এটা সঞ্চালন করা হবে rounding বদলে ছাঁটাই

মাইক্রোসেকেন্ডের নির্ভুলতার বিষয়টি বাদ দিলে এটি ঠিক থাকতে পারে, সেক্ষেত্রে আপনি কোনও স্বয়ংক্রিয় ডেটাটাইপ স্বীকৃতি না দিয়ে কেবল স্ট্রিংকে স্ট্রিং হিসাবে রাখুন ...


0

আমি অনুমান করব যে আইএসও-ফর্ম্যাটটি একটি ভাল ধারণা। ( উইকিপিডিয়া নিবন্ধ , সময় তথ্য সহ)


1
(ডাউনভোট; আসলে, না, এক্সেল সেই ফর্ম্যাটটি স্বীকৃতি দেয় না)
ডগ

1
@ ডগ আমি এটি যাচাই করার জন্য কেবল একটি পরীক্ষা চালিয়েছি: অফিস 2010, ইংলিশ সংস্করণে আমার স্থানীয় সেটিংস (সুইডিশ, যা তারিখের জন্য আইএসও ফর্ম্যাট ব্যবহার করার ক্ষেত্রে ঘটে এবং ইউএস ইংলিশ) ব্যবহার করে খুব ভাল কাজ করে। আগ্রহের বাইরে: কোন পরিবেশে এটি আপনার পক্ষে ব্যর্থ হয়েছিল? আমি কিছুটা অবাক হচ্ছি না যে এটি
কারওর

1
এটি ওএসএক্সের জন্য 2012 সালে অফিসে অবশ্যই কাজ করে না। আমার পরীক্ষায় স্বীকৃত একমাত্র 'নেটিভ' ফর্ম্যাট এক্সেলটি এমএম / ডিডি / ওয়াইওয়াই এইচ এইচ: এমএম: এসএস; অন্য সব কিছুই কেবল পাঠ্য হিসাবে বিবেচিত হত।
ডগ

1
আমি এই প্রশ্নটি খুঁজে পেয়েছিলাম যে এক্সেল কোনও সিএসভিতে আইএসও ফর্ম্যাট তারিখগুলি স্বীকৃতি দেয় না। আইএমও, এটি এক্সেলের একটি বাগ।
বিলপিজ

2
এটি হতে পারে, @ পেট্রিক। এটি ২০০৯ ;-) এ ফিরে পরীক্ষা করা কিছুটা কঠিন ছিল
ফ্রেডরিক মার্ক

0

এমএম / ডিডি / ইয়ি এইচ: মিমি: এসএস একটি ফর্ম্যাট চেষ্টা করুন।

এক্সএমএল ফাইল তৈরি করতে জাভা কোড

xMLResponse.append ("mydate>")। append (this.formatDate (রেজাল্টসেট.সেটটাইমস্ট্যাম্প ("তারিখ")), "এমএম / ডিডি / ইয়ি এইচ: মিমি: এসএস এ")) অ্যাপেন্ড ("");

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

0

সুতরাং, অদ্ভুতভাবে এক্সেল বিভিন্নভাবে সিএসভি তারিখ আমদানি করে। এবং , সিএসভি ফাইলে ব্যবহৃত ফরমেটের উপর নির্ভর করে এগুলি আলাদাভাবে প্রদর্শন করে। দুর্ভাগ্যক্রমে আইএসও 8061 ফর্ম্যাটটি স্ট্রিং হিসাবে আসে। যা আপনাকে সম্ভবত তারিখটি পুনরায় ফর্ম্যাট করতে বাধা দেয়।

তারিখ হিসাবে আসা সমস্তগুলি ... পুরো তথ্য ধারণ করে ... তবে সেগুলি আলাদাভাবে ফর্ম্যাট করে ... যদি আপনি এটি পছন্দ না করেন তবে আপনি এক্সেলের কলামের জন্য একটি নতুন ফর্ম্যাট বেছে নিতে পারেন এবং এটি কার্যকর হবে। (দ্রষ্টব্য: আপনি বলতে পারেন এটি বৈধ তারিখ / সময় হিসাবে এসেছে এটি সঠিকভাবে ন্যায়সঙ্গত হবে ... এটি যদি স্ট্রিং হিসাবে আসে তবে এটি ন্যায়সঙ্গত বাম হবে)

আমি পরীক্ষিত ফর্ম্যাটগুলি এখানে:

"ইয়ে-এমএম-ডিডি" যখন এক্সেলে খোলা হয় অবশ্যই অবশ্যই একটি তারিখ হিসাবে প্রদর্শিত হয়। (এছাড়াও "এমএম / ডিডি / ইয়ে" কাজ করে)

"yyyy-MM-dd HH: mm: ss" ডিফল্ট প্রদর্শন বিন্যাসটি "এমএম / ডিডি / ইয়ি এইচ এইচ: মিমি" (তারিখ এবং সময় ডাব্লু / আউট সেকেন্ড)

"yyyy-MM-dd HH: mm: ss.fff" ডিফল্ট প্রদর্শন বিন্যাসটি "এইচএইচ: মিমি: এসএস" (সময় কেবল ডাব্লু / সেকেন্ড)


-1

এই ফর্ম্যাটে ডেটটাইম কলাম সহ একটি সিএসভি ফাইল দেওয়া হয়েছে: yyyy-mm-dd hh: mm: ss

এক্সেল এটিকে এই ফর্ম্যাটে দেখায়: ডিডি / মিমি / ইয়ে এইচ: মিমি

যেমন 2020-05-22 16:40:55 22/05/2020 16:40 হিসাবে দেখায় shows

এটি স্পষ্টতই উইন্ডোজটিতে নির্বাচিত স্বল্প তারিখ এবং স্বল্প সময়ের বিন্যাস দ্বারা নির্ধারিত হয়; উদাহরণস্বরূপ, আমি যদি উইন্ডোজের শর্ট ডেট ফর্ম্যাটটিকে yyyy-mm-dd তে পরিবর্তন করি তবে এক্সেল 2020-05-22 16:40 দেখায়।

বিরক্তিকরভাবে, আমি এক্সেলটি স্বয়ংক্রিয়ভাবে সেকেন্ডটি প্রদর্শন করার কোনও উপায় খুঁজে পাচ্ছি না (আমাকে এক্সেলের মধ্যে কলামটি নিজে হাতে ফর্ম্যাট করতে হবে)। তবে যদি সিএসভি ফাইলের মধ্যে এইচএইচ: মিমি: এসএস ফর্ম্যাটে (যেমন 16:40:55) টাইম কলাম অন্তর্ভুক্ত থাকে তবে এটি সেকেন্ড সহ এক্সেলে প্রদর্শন করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.