তারিখ-সময় সি # থেকে কেবলমাত্র কীভাবে পাবেন [বন্ধ]


144

ধরুন আমার মান 6/22/2009 10:00:00 এএম আছে। এই তারিখের সময় থেকে আমি কীভাবে কেবলমাত্র 10:00 এ পাব।


15
এটি কি স্ট্রিং না ডেটটাইম?
কলিন বারনেট

উত্তর:


202

আপনার কাছে এর জন্য অনেকগুলি বিকল্প রয়েছে:

DateTime dt = DateTime.Parse("6/22/2009 07:00:00 AM");

dt.ToString("HH:mm"); // 07:00 // 24 hour clock // hour is always 2 digits
dt.ToString("hh:mm tt"); // 07:00 AM // 12 hour clock // hour is always 2 digits
dt.ToString("H:mm"); // 7:00 // 24 hour clock
dt.ToString("h:mm tt"); // 7:00 AM // 12 hour clock

সহায়ক লিঙ্ক: তারিখটাইম। টুস্ট্রিং () প্যাটার্নস


16
@ মেট্রোস্মার্ফ - ওপি অবশ্যই তিনি কী করতে চান তা পরিষ্কার নয়। আমার পোষ্যের একটি ঘৃণা তাড়াতাড়ি স্ট্রিংগুলিতে যেতে হয়। আমার এক সহকর্মী ছিলেন যিনি সবকিছুকে স্ট্রিংয়ে রূপান্তর করেছেন - এমনকি দ্বিগুণ ইত্যাদি It's এটি হওয়ার জন্য অপেক্ষা করা দুর্ঘটনা। আমি বলব যতক্ষণ না আপনি অবজেক্টটিকে মানুষের কাছে প্রদর্শন করতে চান ততক্ষণ স্ট্রিংগুলিতে স্ট্রিংগুলিতে রূপান্তর করবেন না। ততক্ষণ অবজেক্টের সাথে লেগে থাকুন।
পল

1
দ্রুত রেফারেন্সের জন্য, ssএকটি শীর্ষস্থানীয় শূন্যের সাথে কয়েক সেকেন্ড এবং sসেকেন্ড ছাড়াই
বিভি

এখনও
অবধি

76

একটি থেকে DateTime, আপনি ব্যবহার করতে পারেন .TimeOfDay- তবে এটি আপনাকে TimeSpanদিনের (10 ঘন্টা) সময় উপস্থাপন করে।


বা ( "বিন্যাস কোড") ToString উপর ফর্ম্যাটিং সহ বিশেষ ক্ষেত্রে
কেনি

61

সি # তে কেবলমাত্র ডেটটাইম টাইপ রয়েছে এবং এতে তারিখ এবং সময় উভয় অংশই থাকে। আপনি যদি ডেটটাইমের তারিখের অংশটি যত্নশীল না করেন তবে এটিকে ডিফল্ট মান হিসাবে সেট করুন:

DateTime myTime = default(DateTime).Add(myDateTime.TimeOfDay)

এইভাবে আপনি .NET এর সমস্ত সংস্করণ জুড়ে সামঞ্জস্যপূর্ণ হতে পারেন, এমনকি মাইক্রোসফ্ট বেস তারিখটি 1/1/0001 বাদে অন্য কোনও কিছুতে পরিবর্তন করার সিদ্ধান্ত নিয়েছে।


19
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। প্রশ্নটি একটি ডেটটাইম থেকে সময় আহরণের ছিল, এটি স্ট্রিং হিসাবে ফর্ম্যাট করার জন্য নয়।
আসালাজার

বিশেষত এটি "ইন। নেট" "সি # তে" নয়।
rory.ap

22

আপনি ডেটটাইমটি দেখতে চান o টুশোর্টটাইম স্ট্রিং () পদ্ধতিটি ।

এছাড়াও, অনেক অন্যান্য পদ্ধতি এবং এর বৈশিষ্ট্য তারিখসময় বস্তু যখন আপনি আপনার পছন্দের কোন ভাবেই তারিখ বা সময় formating সাহায্য করতে পারেন। ডকুমেন্টেশন একবার দেখুন।


+1 এটিই সবচেয়ে পরিষ্কার সমাধান, যদি আপনি সময়ের আউটপুটটির স্থানীয়করণের প্রয়োজনীয়তা নিয়ে কোনও আন্তর্জাতিক পরিবেশে ছুটে চলেছেন, যেহেতু এটি বর্তমান সিস্টেমটি নির্ধারিত বিন্যাসে সময় দেয়।
আগ্রাসন


6

এটি করার বিভিন্ন উপায় রয়েছে। আপনি DateTime.Now.ToLongTimeString()স্ট্রিং ফর্ম্যাটে কেবল সময়টি ব্যবহার করতে পারেন ।


আপনি সম্ভবত DateTime.ToLongTimeString()বরং চেয়েছিলেন DateTime.Now.ToLongTimeString()। এই থ্রেডের বয়স দেওয়া, পূর্বের উত্তরের তুলনায় প্রতিক্রিয়া উল্লেখযোগ্য উন্নতি অবদান না করা হলে পুনরুত্থান না করা ভাল।
লে

5

আপনি সহজভাবে লিখতে পারেন

string time = dateTimeObect.ToString("HH:mm");

4
এটি 4 বছর আগে ইতিমধ্যে যা জমা পড়েছে তাতে একেবারেই কিছুই যুক্ত করে না!
পল

5

আপনি এটি ব্যবহার করতে পারেন

lblTime.Text = DateTime.Now.TimeOfDay.ToString(); 

এটি মিলিসেকেন্ড মান সহ রিয়েলটাইম এবং এটি কেবল সময়ের সাথে সেট করে।


টাইমঅফডে একটি ভাল উপায় তবে এটি মিলের সেকেন্ডের অংশও নিয়ে আসে আপনার স্ট্যান্ডার্ড টাইপের সাথে আপনার সময় ফর্ম্যাট করতে হবে।
সাজাদ্রে


4

এটি আমার পক্ষে কাজ করে। আমি কেবল তারিখের অংশটি পেতে ডেটটাইম.ডেটের সাথে কাজ করতে গিয়ে এটি আবিষ্কার করেছি।

var wholeDate = DateTime.Parse("6/22/2009 10:00:00 AM");
var time = wholeDate - wholeDate.Date;

3

আপনি ToString("T")দীর্ঘ সময়ের ToString("t")জন্য বা স্বল্প সময়ের জন্য ব্যবহার করতে পারেন ।


2

আপনি যদি গ্রিডভিউ ব্যবহার করছেন তবে আপনি DataFormatString="{0:t}" উদাহরণ সহ কেবলমাত্র সময়টি প্রদর্শন করতে পারেন :

    By bind the value:-
<asp:Label ID="lblreg" runat="server" Text='<%#Eval("Registration_Time ", "{0:t}") %>'></asp:Label>

By bound filed:-
<asp:BoundField DataField=" Registration_Time" HeaderText="Brithday" SortExpression=" Registration Time " DataFormatString="{0:t}"/>

1

আপনি যদি সময়গুলির সাথে তুলনা করতে দেখেন, এবং তারিখগুলি না, আপনার কেবল একটি আদর্শ তুলনার তারিখ থাকতে পারে বা আপনি যে তারিখটি ব্যবহার করছেন তার সাথে মেলে ...

DateTime time = DateTime.Parse("6/22/2009 10:00AM");
DateTime compare = DateTime.Parse(time.ToShortDateString() + " 2:00PM");
bool greater = (time > compare);

এর আরও ভাল উপায় হতে পারে তবে আপনার তারিখগুলি মেলাতে থাকবে।


1

আপনারও ডেটটাইম টাইপের জন্য অ্যাকাউন্ট করতে হবে।

public static DateTime GetTime(this DateTime d)
{
    return new DateTime(d.TimeOfDay.Ticks, d.Kind);
}

এই প্রশ্নের উত্তর দেওয়ার কোনও অর্থ নেই, এটি 9 বছর আগে জিজ্ঞাসা করা হয়েছিল। এছাড়াও ইতিমধ্যে ইতিমধ্যে এই প্রশ্নের অনেক ভাল উত্তর আছে।
বেনশাবত্নোয়াম

আপনি সময় ফিরে না। আপনার উত্তরটি পর্যালোচনা করা উচিত
ইয়েপাইকাই

@ ইয়েপাইকাই। নেট এ কোন টাইম ক্লাস নেই। সুতরাং ডেটটাইম উদাহরণ যেমন তারিখের অংশ নেই তা হ'ল বিকল্প বিকল্পগুলির মধ্যে একটি। আপনি একটি স্ট্রিংও ফিরে আসতে পারেন তবে আপনি এটি ডেটটাইম ক্রিয়াকলাপে ব্যবহার করতে পারেন। আমার ধারণা আপনি একটি টাইমস্প্যানও বিবেচনা করতে পারেন।
ব্যবহারকারী 3720899

ইমো "নতুন ডেটটাইম (d.TimeOfDay.Ticks)" এখন পর্যন্ত সবচেয়ে পরিষ্কার উত্তর
ফ্যাবিয়ানাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.