View Full Version : تناقض - فرمت زمان hh:mm:ss tt
Cave_Man
جمعه 26 بهمن 1386, 21:42 عصر
با سلام
استاندارد اینه که با فرمت hh:mm:ss tt زمان باید بصورت ق.ظ 10:15:30 نمایش داده بشه
اما در دلفی با تغییر فرمت زمان این اتفاق نمیفته و زمان به شکلی عجیب نمایش داده میشه:
10:15:30 10:15:30 یعنی دوتایی.
چرا این مشکل در دلفی وجود داره؟
برای گرفتن زمان از تابع time و برای تغییر فرمت میتونید از متغیر گلوبال LongTimeFormat استفاده کنید
:چشمک:
Cave_Man
شنبه 27 بهمن 1386, 09:02 صبح
برنامه نمونه
vcldeveloper
شنبه 27 بهمن 1386, 15:57 عصر
علتش اینه که شما از hh:mm:ss tt استفاده کردید، در حالی که باید از hh:mm:ss AMPM استفاده می کردید. tt در فرمت بندی یک رشته = مقدار LongTimeFormat. پس نتیجه فرمت شما میشه تکرار مقدار LongTimeFormat به این صورت: hh:mm:ss hh:mm:ss
Cave_Man
یک شنبه 28 بهمن 1386, 04:51 صبح
ضمن تشکر:قلب:
بله در دلفی چنین اتفاقی میفته.اما در این مسیر نگاهی بندازید
Control Panel>Regional And Language Options>Customize
در تب Time دو فرمت رو میتونید مشاهده کنید که بصورت پیشفرض hh:mm:ss tt قرار داده شده و حاصل این فرمت هم نمایش داده شده که هست : 05:18:18 ب.ظ:متفکر:
فرمت hh:mm:ss AM/PM یه ایرادی که داره اینه که فقط AM/PM رو به برمیگردونه و در زبانهای دیگه مثل فارسی و عربی که باید ب.ظ نمایش داده بشه مشکل پیش میاد:بامزه:
من میخام چنین اتفاقی بیفته و خیلی عجیبه که نمیفته!! منظورم اینه که میخام طبق استانداردی که در ویندوز و احتمالا در سیستم عامل های دیگه هم وجود داره عمل کنم.امکانش وجود داره؟
vcldeveloper
یک شنبه 28 بهمن 1386, 15:59 عصر
دلفی باید مقادیر AM/PM رو هم از خود ویندوز بگیره. در هر حال، اون ثابت tt برای دلفی معنی دار هست و نمیشه ازش به اون شکل استفاده کرد. در ضمن، من فکر می کنم این متغیر LongTimeFormat در دلفی بطور اتوماتیک با مقدار موجود در Regional And Language Options تنظیم میشه و قرار نیست برنامه نویس این متغیر رو تغییر بده، بلکه باید برای مطلع شدن از نحوه نمایش ساعت در سیستم کاربر، مقدار آن را بخونه. اگر نیاز دارید که در برنامه ساعت را به فرمت دیگه ایی نمایش بدید، TimeToStr یک نمونه Overload شده هم داره که مقدار فرمت ساعت را به عنوان پارامتر میگیره.
Cave_Man
یک شنبه 28 بهمن 1386, 17:29 عصر
تشکر دوباره:قلب:
نتیجه تغییر متغیر گلوبال و استفاده از تابع FormatDateTime یکی بود
TimeToStr جالب بود
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.