ఎక్సెల్ తేదీ వ్యత్యాసం నాలుగు సంవత్సరాలు: మొదట వర్క్బుక్ తేదీ సిస్టమ్ను చూడండి

iso_dates ఫైల్లోని తేదీ సీరియలైజేషన్ పద్ధతిని నియంత్రిస్తుంది మరియు మెమరీలోని తేదీ సమయాన్ని స్వయంచాలకంగా స్ట్రింగ్గా మార్చదు. తేదీ క్రమ సంఖ్యకు వర్క్బుక్ యొక్క యుగం అవసరం; ఇక్కడ మేము రెండు తేదీ సిస్టమ్లను సరిపోల్చాము మరియు సేవ్ చేసిన XML మరియు రీడ్బ్యాక్ విలువలను తనిఖీ చేస్తాము.

Excel నాలుగు సంవత్సరాలలో ఆఫ్సెట్ చేయబడిన తేదీలను ఎగుమతి చేస్తుంది మరియు చాలా సందర్భాలలో సమస్య వర్క్బుక్ యొక్క తేదీ సిస్టమ్తో ఉంటుంది, డేటా కాదు. నివేదిక ఎగుమతులు, ETL స్క్రిప్ట్లు లేదా Excel ఫైల్ల క్రాస్-ప్లాట్ఫారమ్ మార్పిడికి బాధ్యత వహించే డెవలపర్లు మరియు డేటా వ్యక్తుల కోసం వ్రాయబడింది. మీరు మొత్తం తేదీ మార్పు, తేదీలుగా ప్రదర్శించబడని సంఖ్యలు, 1900 చుట్టూ ఉన్న డేటా క్రమరాహిత్యాలు మొదలైన పరిస్థితులను ఎదుర్కొన్నప్పుడు, మీరు మొదట ఈ కథనం క్రమంలో ట్రబుల్షూట్ చేయవచ్చు.

ఈ కథనాన్ని చదివిన తర్వాత, మీరు 1900 మరియు 1904 నాటి రెండు తేదీ వ్యవస్థల మధ్య వ్యత్యాసాన్ని అర్థం చేసుకుంటారు, ప్రస్తుత వర్క్బుక్ ఉపయోగించే సిస్టమ్ను నిర్ధారించడానికి workbook.epoch ఎలా చదవాలో తెలుసుకోండి మరియు XMLని తనిఖీ చేయడం మరియు సేవ్ చేసిన తర్వాత విలువలను తిరిగి చదవడం వంటి అంగీకార పద్ధతిలో నైపుణ్యం సాధించండి. ఈ ఆర్టికల్లోని కోడ్ మరియు టేబుల్లు సింథటిక్ శాంపిల్స్తో వివరించబడ్డాయి, నిజమైన డాక్యుమెంట్లతో పని చేసే ముందు చెక్లిస్ట్గా సరిపోతాయి.

Excel తేదీ నాలుగు సంవత్సరాలు భిన్నంగా ఉంటే నేను ఏమి చేయాలి? ఒక వాక్యం ముగింపు

మొదట వర్క్బుక్ యొక్క workbook.epochని చదవండి మరియు మార్చడానికి ముందు తేదీ వ్యవస్థను నిర్ధారించండి; సరిహద్దు తేదీ మరియు సమయ మండల సమస్యలు విడిగా నిర్వహించబడతాయి.

మీ పరిస్థితిసిఫార్సు చేసిన పద్ధతులుకారణం
ఎగుమతి చేసిన తేదీ మొత్తం సుమారు 1462 రోజులు ఆఫ్సెట్ చేయబడిందివర్క్బుక్ తేదీ వ్యవస్థను నిర్ధారించడానికి ముందుగా workbook.epochని చదవండి1900 మరియు 1904 సిస్టమ్ల మధ్య వ్యత్యాసం 1462 రోజులు, మరియు రీడ్ సైడ్లోని తప్పు అంచనాలు అన్ని క్రమ సంఖ్యలను తప్పుగా అర్థం చేసుకోవడానికి కారణమవుతాయి
సెల్ ఒక సంఖ్య కానీ తేదీగా ప్రదర్శించబడదుnumber_format తేదీ ఫార్మాట్ మాస్క్ని తనిఖీ చేసి పూర్తి చేయండిసంఖ్యా రకం సరైనది అయినప్పుడు, తప్పిపోయిన ఫార్మాట్లు ప్రదర్శన అసాధారణతలను కలిగిస్తాయి.
మార్చి 1900 లేదా 1900-02-29కి ముందు తేదీలు డేటాలో కనిపిస్తాయిచెల్లనిదిగా గుర్తించండి లేదా మాన్యువల్ సమీక్షకు బదిలీ చేయబడింది, అసలు క్రమ సంఖ్యను అలాగే ఉంచండిఈ తేదీ గ్రెగోరియన్ క్యాలెండర్లో లేదు మరియు బలవంతంగా మార్చకూడదు
టైమ్ జోన్తో datetime వ్రాయాలిUTCకి ఏకీకృత మార్పిడి తర్వాత tzinfoని తీసివేయండిExcel సమయ మండలాలను నిల్వ చేయడానికి మద్దతు ఇవ్వదు, అవగాహన లేకుండా అన్ని సమయాలు స్థానిక సమయం
ప్లాట్ఫారమ్లలో ఫైల్లను మార్పిడి చేయాలితేదీ వ్యవస్థను స్పష్టంగా ప్రకటించండిరిసీవర్ యొక్క డిఫాల్ట్ సెట్టింగ్లు భిన్నంగా ఉంటాయి, ఇది నిశ్శబ్ద ఆఫ్సెట్ను ఉత్పత్తి చేయవచ్చు

1900 మరియు 1904 తేదీ వ్యవస్థల మధ్య తేడాలు

XLSX ఫైల్లోని తేదీ తప్పనిసరిగా ఫ్లోటింగ్ పాయింట్ సీరియల్ నంబర్, మరియు దాని అర్థం పూర్తిగా వర్క్బుక్ కట్టుబడి ఉన్న తేదీ సిస్టమ్పై ఆధారపడి ఉంటుంది. XLSX స్పెసిఫికేషన్ రెండు బేస్ యుగాలను అనుమతిస్తుంది:

  • 1900 తేదీ సిస్టమ్: డిఫాల్ట్గా Windows ద్వారా ఉపయోగించబడుతుంది, క్రమ సంఖ్య 1 1900-01-01ని సూచిస్తుంది
  • 1904 తేదీ సిస్టమ్: ప్రారంభ Macsలో డిఫాల్ట్గా ఉపయోగించబడుతుంది, క్రమ సంఖ్య 0 1904-01-01ని సూచిస్తుంది

రెండింటి మధ్య 1462 రోజుల స్థిర ఆఫ్సెట్ ఉంది, ఇది "నాలుగు సంవత్సరాల తేదీ వ్యత్యాసం" యొక్క ప్రధాన మూలం. అదనంగా, 1900 వ్యవస్థకు చారిత్రక సమస్య ఉంది: ఇది 1900ని లీప్ ఇయర్గా తప్పుగా పరిగణిస్తుంది, దీని వలన Excelలో ఉనికిలో లేని తేదీ 1900-02-29 చట్టబద్ధం చేయబడింది.

కోర్ పోలిక

ప్రాజెక్ట్1900 తేదీ వ్యవస్థ1904 తేదీ వ్యవస్థ
క్రమ సంఖ్య యొక్క ప్రారంభ స్థానంక్రమ సంఖ్య 1 1900-01-01కి అనుగుణంగా ఉంటుందిక్రమ సంఖ్య 0 1904-01-01కి అనుగుణంగా ఉంటుంది
సాధారణ డిఫాల్ట్ మూలాలుWindowsప్రారంభ Mac
మరొక సిస్టమ్ నుండి ఆఫ్సెట్1462 రోజుల తేడా1462 రోజుల తేడా
ప్రత్యేక సమస్యలు1900 లీప్ ఇయర్గా తప్పుగా భావించబడింది, 1900-02-29 ఉందిఈ వ్యాసం అటువంటి సమస్యలను కవర్ చేయదు

1900కి ముందు డేటా ఎందుకు ప్రత్యేక శ్రద్ధ అవసరం

మీరు మార్చి 1900కి ముందు చారిత్రక డేటాతో వ్యవహరిస్తుంటే, పైథాన్ datetime మాడ్యూల్ నేరుగా ఫిబ్రవరి 29ని సూచించదు. అధికారిక openpyxl డాక్యుమెంటేషన్ ప్రకారం, Excel ప్రవర్తనకు అనుకూలంగా ఉండటానికి, 1900 సిస్టమ్లో జనవరి మరియు ఫిబ్రవరిలో తేదీలను చదివేటప్పుడు లైబ్రరీ ఈ మినహాయింపును అనుకరిస్తుంది, అయితే 1900-02-29 కూడా చెల్లుబాటు అయ్యే పైథాన్ datetime వస్తువుగా మార్చబడదు.

చాలా ఆధునిక వ్యాపార డేటా కోసం, ప్రస్తుత వర్క్బుక్ ఏ సిస్టమ్ని ఉపయోగిస్తుందో గుర్తించడం మరియు విభిన్న డిఫాల్ట్ సెట్టింగ్ల కారణంగా స్వీకరించే ముగింపులో నిశ్శబ్ద డ్రిఫ్ట్ను నివారించడానికి ప్లాట్ఫారమ్ల అంతటా ఫైల్లను మార్పిడి చేస్తున్నప్పుడు దానిని స్పష్టంగా ప్రకటించడం.

సింథసిస్ ఉదాహరణ: సరిహద్దు ఇన్పుట్ మరియు ప్రాసెసింగ్ పద్ధతులు

సమస్యను వివరించడానికి, మేము సింథటిక్ దృష్టాంతాన్ని నిర్మిస్తాము: ఆర్థిక వ్యవస్థ ద్వారా ఎగుమతి చేయబడిన నివేదిక 1904 తేదీ వ్యవస్థను ఉపయోగిస్తుంది, అయితే దిగువ ETL స్క్రిప్ట్ దానిని డిఫాల్ట్గా 1900 సిస్టమ్ ప్రకారం అన్వయిస్తుంది.

ఎర్రర్ లేదా బౌండరీ ఇన్పుట్ నిర్వహణ:

  1. ఇన్పుట్ సీరియల్ నంబర్ 60 అయితే మరియు వర్క్బుక్ 1900 సిస్టమ్కు సంబంధించినది అయితే, అది Excelలో కల్పిత 1900-02-29కి అనుగుణంగా ఉంటుంది. పైథాన్ యొక్క స్థానిక datetime ValueErrorని విసిరింది.
  2. ఈ సమయంలో, మినహాయింపు బలవంతంగా ఉండకూడదు, కానీ మినహాయింపు క్యాచ్ చేయబడి, అసలు విలువ లేదా ప్రత్యేక గుర్తుగా నమోదు చేయబడాలి, ఎందుకంటే తేదీ గ్రెగోరియన్ క్యాలెండర్లో లేదు.
  3. టైం జోన్ సమాచారంతో datetime ఆబ్జెక్ట్ వ్రాయడం కోసం పంపబడితే, openpyxl స్వయంచాలకంగా టైమ్ జోన్ను మార్చదు, కానీ ముందుగా tzinfoని తీసివేయడం అవసరం, లేకుంటే వ్రాత లోపం లేదా లోపం సంభవించవచ్చు.
  4. Excel దానంతట అదే సమయ మండలి నిల్వకు మద్దతు ఇవ్వదు మరియు అవగాహన లేకుండా అన్ని సమయాలు స్థానిక సమయం.

తేదీ సిస్టమ్ గుర్తింపు మరియు సురక్షిత మార్పిడి కోడ్

మెమరీలో తేదీ సిస్టమ్ తేడాలను సురక్షితంగా ఎలా నిర్వహించాలో క్రింది ఉదాహరణ చూపిస్తుంది. కోడ్ తార్కిక ప్రదర్శన కోసం మాత్రమే మరియు అసలు ఫైల్ రీడింగ్ మరియు రైటింగ్ చేయదు. ఇది మీ స్వంత లాక్ చేయబడిన డిపెండెన్సీ వాతావరణంలో అమలు చేయబడాలి. Openpyxl >= 3.1.0 సిఫార్సు చేయబడింది. ఉదాహరణలలో నెట్వర్క్ అభ్యర్థనలు లేదా ఫైల్ ఓవర్రైట్ ఆపరేషన్లు లేవు, అన్ని వాదనలు సింథటిక్ డేటాపై ఆధారపడి ఉంటాయి.

from datetime import datetime
from io import BytesIO
from zipfile import ZipFile
from openpyxl import Workbook, load_workbook
from openpyxl.utils.datetime import from_excel, CALENDAR_MAC_1904, CALENDAR_WINDOWS_1900
assert from_excel(1, CALENDAR_MAC_1904) == datetime(1904, 1, 2)
assert from_excel(1, CALENDAR_WINDOWS_1900) == datetime(1900, 1, 1)
wb = Workbook()
wb.epoch = CALENDAR_MAC_1904
wb.iso_dates = True
value = datetime(2026, 9, 26, 12, 30)
wb.active["A1"] = value
assert wb.active["A1"].value == value
out = BytesIO()
wb.save(out)
with ZipFile(BytesIO(out.getvalue())) as z:
    xml = z.read("xl/worksheets/sheet1.xml")
    assert b't="d"' in xml and b"2026-09-26T12:30:00" in xml
restored = load_workbook(BytesIO(out.getvalue()))
assert restored.active["A1"].value == value
assert restored.epoch == CALENDAR_MAC_1904

అంగీకార ప్రమాణాలు మరియు మాన్యువల్ సమీక్ష సరిహద్దులు

దృగ్విషయాలను గమనించండిఇన్పుట్ లేదా సరిహద్దు పరిస్థితులుఊహించిన అవుట్పుట్ లేదా ప్రాసెసింగ్ నిర్ణయంఆటోమేషన్ వర్తిస్తుందా
అన్ని తేదీలు ఏకరీతిగా 1462 రోజులు ఆఫ్సెట్ చేయబడ్డాయిwb.epoch విశ్లేషణాత్మక అంచనాలకు విరుద్ధంగా ఉందిwb.epochని చదవండి మరియు క్రమ సంఖ్యను తిరిగి మార్చండిఅవును
1900-02-29 డేటాలో కనిపిస్తుందిక్రమ సంఖ్య 60తో 1900 సిస్టమ్చెల్లని తేదీగా గుర్తించబడింది, అసలు క్రమ సంఖ్య 60ని అలాగే ఉంచుకోండిలేదు, మీరు వ్యాపార అర్థాన్ని మాన్యువల్గా నిర్ధారించాలి
కొంత సమయం లేదు లేదా తప్పుగా ఉందిtzinfoతో datetimeని నమోదు చేయండిUTCకి ఏకరీతిగా మార్చండి మరియు వ్రాయడానికి tzinfoని తీసివేయండిభాగం, మీరు లక్ష్య సమయ మండలిని మాన్యువల్గా నిర్వచించాలి
సెల్ సంఖ్యను ప్రదర్శిస్తుంది కానీ తేదీగా ఫార్మాట్ చేయబడిందిసంఖ్యా రకం సరైనది కానీ number_format లేదుతేదీ ఫార్మాట్ మాస్క్ని తనిఖీ చేసి పూర్తి చేయండిఅవును
చారిత్రక తేదీలు (1900-01-01 కంటే ముందు) అసాధారణంగా ప్రదర్శించబడ్డాయి1900-01-01 కంటే ముందు తేదీబదులుగా టెక్స్ట్ స్టోరేజ్ లేదా డెడికేటెడ్ హిస్టోరియన్ డేటాబేస్ ఉపయోగించండిలేదు, XLSX ఈ దృష్టాంతానికి తగినది కాదు

కోడ్ ప్రదర్శన మార్పిడి తర్కం యొక్క ఖచ్చితత్వాన్ని మాత్రమే ధృవీకరిస్తుంది మరియు ఎండ్-టు-ఎండ్ ఎఫెక్ట్కు సమానం కాదని గమనించాలి. నిజమైన ఫైల్లు బహుళ తేదీ ఫార్మాట్లు, షరతులతో కూడిన ఫార్మాట్లు లేదా ఫార్ములాల ద్వారా రూపొందించబడిన తేదీలను కలిగి ఉండవచ్చు, వీటికి అదనపు లేయర్లు పార్సింగ్ అవసరం. మార్చి 1900కి ముందు తేదీలు, క్రాస్-టైమ్ జోన్ సహకార డేటా లేదా ప్రామాణికం కాని క్యాలెండర్లు (చంద్ర క్యాలెండర్, ఆర్థిక సంవత్సరం వంటివి) ఉన్నట్లయితే, మీరు మాన్యువల్ రివ్యూ ప్రాసెస్ను నమోదు చేయాలి మరియు ఆటోమేటెడ్ స్క్రిప్ట్లు అనధికార సవరణలు చేయకూడదు.

🎯 మీకు ఏ పద్ధతి అనుకూలంగా ఉంటుంది?

మీరు ఎగుమతి ఫైల్ నుండి తేదీని చదవవలసి వస్తే

ముందుగా workbook.epochని చదవండి, తేదీ వ్యవస్థను నిర్ధారించండి, ఆపై క్రమ సంఖ్యను తిరిగి మార్చాలా వద్దా అని నిర్ణయించుకోండి.

మీ డేటా మార్చి 1900కి ముందు తేదీలను కలిగి ఉంటే

1900-02-29కి సంబంధించిన రికార్డులను చెల్లనిదిగా గుర్తించండి, అసలు క్రమ సంఖ్యను అలాగే ఉంచుకోండి మరియు వ్యాపార అర్థాన్ని మాన్యువల్ నిర్ధారణకు అప్పగించండి.

మీరు ఎక్సెల్లో టైమ్ జోన్తో సమయాన్ని వ్రాయవలసి వస్తే

మొదట UTCకి ఏకరీతిగా మార్చండి, ఆపై tzinfoని తీసివేయండి; లక్ష్య సమయ క్షేత్రాన్ని మాన్యువల్గా నిర్వచించాలి.

మీరు ఇతర సిస్టమ్లతో ఫైల్లను మార్పిడి చేయాలనుకుంటే

తేదీ వ్యవస్థను స్పష్టంగా ప్రకటించండి మరియు స్వీకరించే ముగింపులో రీడ్బ్యాక్ తేదీ విలువలను ధృవీకరించండి.

❓ తరచుగా అడిగే ప్రశ్నలు (FAQ)

1. ఎగుమతి చేసిన తేదీని సుమారు నాలుగు సంవత్సరాలు ఎందుకు మార్చారు?

ఒక సాధారణ కారణం ఏమిటంటే, వర్క్బుక్ యొక్క తేదీ వ్యవస్థ పఠనం వైపున ఉన్న ఊహలకు విరుద్ధంగా ఉంది. 1900 మరియు 1904 నాటి రెండు వ్యవస్థల మధ్య వ్యత్యాసం 1462 రోజులు.

2. iso_dates స్వయంచాలకంగా తేదీ సమయాన్ని స్ట్రింగ్గా మారుస్తుందా?

కాదు. iso_dates ఫైల్లోని తేదీ సీరియలైజేషన్ పద్ధతిని మాత్రమే నియంత్రిస్తుంది మరియు మెమరీలోని datetimeని స్వయంచాలకంగా స్ట్రింగ్గా మార్చదు.

3. 1900-02-29ని పైథాన్ డేట్టైమ్గా ఎందుకు మార్చలేరు?

1900 సిస్టమ్ 1900ని లీప్ ఇయర్గా తప్పుగా పరిగణిస్తుంది, దీని వలన ఎక్సెల్లో 1900-02-29 ఉనికిలో ఉంది, కానీ గ్రెగోరియన్ క్యాలెండర్లో ఆ రోజు లేదు. పైథాన్ యొక్క datetime ValueErrorని విసిరివేస్తుంది, ఈ సందర్భంలో అసలు సంఖ్యా విలువ లేదా ప్రత్యేక జెండాను లాగిన్ చేయాలి.

4. ఎక్సెల్లో టైమ్ జోన్తో డేట్టైమ్ను ఎలా వ్రాయాలి?

Excel సమయ మండలాలను నిల్వ చేయడానికి మద్దతు ఇవ్వదు. ఇది మొదట UTCకి ఏకరీతిగా మార్చబడాలి, ఆపై వ్రాయడానికి ముందు tzinfo నుండి తీసివేయాలి; openpyxl సమయ మండలి మార్పిడిని స్వయంచాలకంగా పూర్తి చేయదు.

📝 సారాంశం

తేదీ ఆఫ్సెట్ సమస్యలు సాధారణంగా వర్క్బుక్ యొక్క తేదీ సిస్టమ్ నుండి ఉత్పన్నమవుతాయి. మార్చే ముందు workbook.epochని నిర్ధారించడం వలన చాలా నిశ్శబ్ద లోపాలను నివారించవచ్చు. సరిహద్దు తేదీ మరియు సమయ మండల సమస్యలను మానవ సమీక్షకు సూచించాలి.

ఇప్పుడే దీన్ని ప్రయత్నించండి: అనువాదాన్ని ప్రారంభించడానికి పత్రాన్ని అప్లోడ్ చేయండి, అసలు లేఅవుట్ను అలాగే ఉంచండి

సూచనలు మరియు తదుపరి దశలు

  • openpyxl అధికారిక తేదీ మరియు సమయ డాక్యుమెంటేషన్: https://openpyxl.readthedocs.io/en/stable/datetime.html
  • 1900/1904 తేదీ సిస్టమ్పై Microsoft యొక్క గమనిక: https://docs.microsoft.com/en-us/office/troubleshoot/excel/1900-and-1904-date-system
  • 1900 లీప్ ఇయర్ బగ్ యొక్క మైక్రోసాఫ్ట్ వివరణ: https://docs.microsoft.com/en-us/office/troubleshoot/excel/wrongly-assumes-1900-is-leap-year

తదుపరి దశ: మీరు ఉపయోగించడానికి అనుమతిని కలిగి ఉన్న డీసెన్సిటైజ్ చేయబడిన Excel నమూనాను ఎంచుకోండి, పై యుగం గుర్తింపు కోడ్ని అమలు చేయండి మరియు దాని తేదీ సిస్టమ్ మీ ప్రాసెసింగ్ లాజిక్కు అనుగుణంగా ఉందో లేదో నిర్ధారించండి. అసమానతలు కనుగొనబడితే, అనువాద బట్వాడాలను రూపొందించడానికి ముందు మార్పిడి పారామితులను సర్దుబాటు చేయండి.

డాక్యుమెంట్ అనువాదం కోసం ఈ చెక్లిస్ట్ని ఉపయోగించండి

ముందుగా ఏ కంటెంట్ టెక్స్ట్, ఏది ఫార్ములా మరియు బిజినెస్ కోడింగ్ అని నిర్ణయించుకుని, ఆపై పట్టికను అనువదించండి. పోస్ట్-ట్రాన్స్లేషన్ చెక్ చైనీస్ లక్ష్య భాషగా మార్చబడిందో లేదో నిర్ధారించడమే కాకుండా, ఫార్ములాలు, ఐడెంటిఫైయర్లు మరియు రిఫరెన్స్ రిలేషన్షిప్లు మార్చబడలేదని కూడా నిర్ధారిస్తుంది.

OmniDoc (ఉత్పత్తి పోర్టల్) బహుళ-ఫార్మాట్ డాక్యుమెంట్ ట్రాన్స్లేషన్ పోర్టల్ను అందిస్తుంది మరియు అధికారిక వెబ్సైట్ OCR, గ్లాసరీ మరియు ద్విభాషా పోలిక ఫంక్షన్లను పరిచయం చేస్తుంది. ఫైల్ల నుండి నేరుగా పని చేయాలనుకునే బృందాల కోసం, ఇది నిజ జీవిత నమూనాలతో మూల్యాంకనం చేయడానికి విలువైన మార్గం. దయచేసి అప్లోడ్ చేయడానికి మీకు అనుమతి ఉన్న డీసెన్సిటైజ్ చేయబడిన ఫైల్లను ఉపయోగించండి మరియు ఫలితాలను సమీక్షించడానికి ఈ కథనంలోని చెక్ ఐటెమ్లను ఉపయోగించండి. OmniDoc కథనంలో ఓపెన్ సోర్స్ లైబ్రరీలు లేదా అంతర్గత అల్గారిథమ్లను ఉపయోగిస్తుందని ఈ కథనం క్లెయిమ్ చేయలేదు లేదా ఉత్పత్తి పనితీరు పరీక్షను భర్తీ చేయడానికి ఉదాహరణలను ఉపయోగించదు.

నవీకరించబడింది 2026-11-13