تحويل ticks في .NET إلى تاريخ ووقت ISO
قيمة ticks البالغة 638712864000000000 تعني منتصف ليل 1 يناير 2025 بتوقيت UTC. الصق أي عدد من الخطوات التي تبلغ مدة كل منها 100 نانوثانية منذ بداية السنة 1 لتحصل على التاريخ والوقت كاملين، ومنفصلين أيضًا. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- التكات (ticks)
- 638712864000000000
- التاريخ والوقت بصيغة ISO
- 2025-01-01T00:00:00.0000000Z
- التاريخ
- 2025-01-01
- الوقت
- 00:00:00.0000000Z
حوّل قيمة ticks الخاصة بـ DateTime في . NET إلى تاريخ ووقت ISO واضحين بتوقيت UTC، من دون الاعتماد على المنطقة الزمنية المحلية أو محلل التاريخ في الجهاز. تُعامل القيمة كعدد فترات طول كل منها 100 نانوثانية منذ منتصف ليل 1 يناير من السنة 1 في التقويم الغريغوري الاستباقي. تُعاد قيمة ticks المطبّعة، ووقت ISO كامل بسبعة أرقام كسرية، وحقلا التاريخ والوقت منفصلين. وهكذا يمكنكم فحص قواعد البيانات القديمة والسجلات وحمولات التكامل مع الاحتفاظ بالدقة الأصلية كاملة.
فهم ما تمثله tick في .NET
تعادل tick واحدة في DateTime ضمن . NET مقدار 100 نانوثانية؛ فكل عشرة ملايين ticks تساوي ثانية، وكل 864 مليارًا تساوي يومًا. نقطة البدء هي 0001-01-01 عند 00:00:00 وليست حقبة Unix.
يقسم المحول العدد الصحيح بدقة إلى أيام غريغورية كاملة وباقي اليوم، ثم يستخرج السنة والشهر واليوم وفق قواعد السنوات الكبيسة في DateTime. تنتهي النتيجة بالحرف Z لأن الحساب يُعرض بصورة حتمية بتوقيت UTC. وتُحفظ الأرقام السبعة بعد الثواني من دون تقريب إلى أجزاء الألف.
تُقبل الأصفار البادئة، ثم تزال من الحقل المطبّع في الاستجابة لتسهيل المقارنة والتخزين المتسقين.
التحويل من دون مفاجآت المناطق الزمنية
لا يرجع الحساب إلى الساعة أو الإعدادات المحلية أو منطقة النظام الزمنية أو قواعد التوقيت الصيفي أو محلل تاريخ مدمج. لذلك تنتج القيمة المحفوظة نفسها المكونات ذاتها في المتصفح والخادم ومحطة العمل مهما اختلفت المناطق. يعبّر الحرف Z الأخير عن تفسير UTC المطلوب، ولا يُستنتج من بيانات DateTime Kind خفية، لأن عدد ticks المجرد لا يحملها.
إذا كان التطبيق المصدر يعامل DateTime كتوقيت محلي أو غير محدد، فعليكم تحديد المنطقة المقصودة قبل اعتماد الناتج كلحظة مطلقة. لا يطبق المحول إزاحة من التوقيت المحلي إلى UTC، بل يطابق العدد مباشرة مع حقبة السنة 1. يمنع ذلك تعديل البيانات التاريخية بتحويل يبدو مفيدًا.
وتبقى الأيام الكبيسة وحدود القرون ومنتصف الليل والقيمة القصوى ثابتة بين عمليات التشغيل.
التحقق من وقت ISO الناتج ودمجه
يمتد النطاق المقبول من 0 إلى 3155378975999999999، وهو نطاق DateTime من أول لحظة في السنة 1 إلى آخر فترة قدرها 100 نانوثانية في السنة 9999. يجب أن تضم المدخلة أرقامًا عشرية فقط. تُرفض القيم السالبة والأسس والفواصل العشرية والإشارات والفواصل والقيم المتجاوزة بدل تخمينها أو تقريبها.
يكشف هذا العقد الصارم السجلات التالفة بوضوح أثناء الترحيل. قد تحفظ بعض قواعد البيانات ومكتبات JavaScript أجزاء الألف أو المليون فقط؛ فتحققوا من الوجهة إذا كانت الأرقام الأخيرة مهمة. يصلح date لمفاتيح التقسيم وtime للجزء اليومي المنفصل.
حالات الاستخدام
فحص صفوف قاعدة بيانات قديمة
حوّلوا عمود ticks المبهم إلى تواريخ UTC مقروءة أثناء الترحيل.
توحيد حمولات التكامل
حوّلوا سلاسل DateTime قبل إرسالها إلى أنظمة تستخدم طوابع زمنية نصية.
تنقيح قيم .NET المتسلسلة
تحققوا من اللحظة التي تمثلها ticks في السجلات أو الذاكرة المؤقتة أو حالة التطبيق المصدرة.
الأسئلة الشائعة
ما حقبة ticks الخاصة بـ DateTime في .NET؟
يبدأ العد من 0001-01-01T00:00:00.0000000 في التقويم الغريغوري الاستباقي.
هل تتضمن ticks معلومات المنطقة الزمنية؟
لا. لا تحمل DateTime Kind ولا إزاحة محلية؛ تُحسب النتيجة وتوسم UTC من دون تطبيق إزاحة.
ما مقدار الدقة المحفوظة؟
تُحفظ الأرقام الكسرية السبعة للثانية، بما يوافق دقة 100 نانوثانية لكل tick.
ما القيم المقبولة؟
الأعداد الصحيحة العشرية من 0 إلى 3155378975999999999؛ وتُرفض الإشارات والكسور والأسس والقيم الخارجة عن النطاق.
كم تبلغ مدة tick واحدة في .NET؟
تبلغ مدة tick الواحدة 100 نانوثانية. عشرة ملايين tick تساوي ثانية واحدة، و864 مليار tick تساوي يومًا كاملًا، ويبدأ العد من منتصف ليل بداية السنة 1 لا من حقبة يونكس.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/date/dotnet-ticks-to-date \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"ticks":"638712864000000000"}'const res = await fetch("https://api.kit.forhosting.com/date/dotnet-ticks-to-date", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"ticks": "638712864000000000"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/dotnet-ticks-to-date",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"ticks": "638712864000000000"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/dotnet-ticks-to-date", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"ticks":"638712864000000000"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"ticks":"638712864000000000"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/dotnet-ticks-to-date", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"ticks": "638712864000000000"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.dotnet_ticks_to_date",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
فهم ما تمثله tick في .NET
أرسلوا ticks كنص عشري لتجنب فقدان الدقة عند تمثيل أعداد JSON الكبيرة.
التحقق من وقت ISO الناتج ودمجه
استخدموا iso_datetime في التصدير أو حمولة API التي تدعم سبعة أرقام كسرية. تكلف كل معالجة آلية $0.002 لكل عنصر، وتسهل الاستجابة الحتمية اختبارات الانحدار الكاملة.
أسئلة تقنية
لماذا ينبغي إرسال ticks كنص؟
تتجاوز القيم الكبيرة دقة الأعداد الصحيحة في تطبيقات JSON الشائعة، بينما يحفظ النص العشري كل رقم.
ما تكلفة التحويل عبر API؟
تكلف كل عملية تحويل $0.002.