From 6962c65aab3365295e4d40a040d530f53a87afd6 Mon Sep 17 00:00:00 2001 From: "13621160019@163.com" <13621160019@163.com> Date: Wed, 22 Sep 2021 12:41:12 +0800 Subject: [PATCH 1/2] changed cost file upload datetime formatter from timestamp to strftime --- .../views/settings/costcenter/costcenter.html | 5 ++--- myems-api/README.md | 2 +- myems-api/core/costfile.py | 20 +++++++++++-------- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/admin/views/settings/costcenter/costcenter.html b/admin/views/settings/costcenter/costcenter.html index 28b717ce..2853bacd 100644 --- a/admin/views/settings/costcenter/costcenter.html +++ b/admin/views/settings/costcenter/costcenter.html @@ -120,12 +120,11 @@ download="{{costfile.file_name}}">{{ costfile.file_name }} {{ costfile.status }} - {{ costfile.upload_datetime | date:'yyyy-MM-dd HH:mm'}} - + {{ costfile.upload_datetime}} {{'SETTING.RESTORE' | translate}} - {{'SETTING.DELETE' | translate}} diff --git a/myems-api/README.md b/myems-api/README.md index efeed06e..8390cb79 100644 --- a/myems-api/README.md +++ b/myems-api/README.md @@ -274,7 +274,7 @@ Result | id | integer | Cost File ID | | file_name | string | Cost File name | | uuid | string | Cost File UUID | -| upload_datetime | float | the number of milliseconds since January 1, 1970, 00:00:00, universal time | +| upload_datetime | string | Upload Datetime in Local Timezone | | status | string | Cost File processing status (new, done, error) | | file_object | BLOB | Cost File Object | diff --git a/myems-api/core/costfile.py b/myems-api/core/costfile.py index 02d710e0..9f85cfcf 100644 --- a/myems-api/core/costfile.py +++ b/myems-api/core/costfile.py @@ -3,7 +3,7 @@ import json import mysql.connector import config import uuid -from datetime import datetime, timezone +from datetime import datetime, timezone, timedelta import os from core.userlogger import user_logger @@ -31,15 +31,18 @@ class CostFileCollection: cursor.close() cnx.disconnect() + timezone_offset = int(config.utc_offset[1:3]) * 60 + int(config.utc_offset[4:6]) + if config.utc_offset[0] == '-': + timezone_offset = -timezone_offset + result = list() if rows is not None and len(rows) > 0: for row in rows: - upload_datetime = row[3] - upload_datetime = upload_datetime.replace(tzinfo=timezone.utc) + upload_datetime_local = row[3].replace(tzinfo=timezone.utc) + timedelta(minutes=timezone_offset) meta_result = {"id": row[0], "file_name": row[1], "uuid": row[2], - "upload_datetime": upload_datetime.timestamp() * 1000, + "upload_datetime": upload_datetime_local.strftime('%Y-%m-%dT%H:%M:%S'), "status": row[4]} result.append(meta_result) @@ -172,14 +175,15 @@ class CostFileItem: if row is None: raise falcon.HTTPError(falcon.HTTP_404, title='API.NOT_FOUND', description='API.COST_FILE_NOT_FOUND') + timezone_offset = int(config.utc_offset[1:3]) * 60 + int(config.utc_offset[4:6]) + if config.utc_offset[0] == '-': + timezone_offset = -timezone_offset - upload_datetime = row[3] - upload_datetime = upload_datetime.replace(tzinfo=timezone.utc) - + upload_datetime_local = row[3].replace(tzinfo=timezone.utc) + timedelta(minutes=timezone_offset) result = {"id": row[0], "file_name": row[1], "uuid": row[2], - "upload_datetime": upload_datetime.timestamp() * 1000, + "upload_datetime": upload_datetime_local.strftime('%Y-%m-%dT%H:%M:%S'), "status": row[4]} resp.body = json.dumps(result) From f27b95adeef6100062981497555386b1fa02e9b6 Mon Sep 17 00:00:00 2001 From: "13621160019@163.com" <13621160019@163.com> Date: Wed, 22 Sep 2021 13:55:50 +0800 Subject: [PATCH 2/2] changed upload datetime formater of knowledgefile and offlinemeterfile from timestamp to strftime; --- .../settings/knowledgefile/knowledgefile.html | 2 +- admin/views/settings/meter/meter.html | 2 +- myems-api/README.md | 4 ++-- myems-api/core/costfile.py | 1 + myems-api/core/knowledgefile.py | 14 ++++++------- myems-api/core/offlinemeterfile.py | 20 ++++++++++++------- .../MyEMS/KnowledgeBase/KnowledgeBase.js | 6 +++--- 7 files changed, 28 insertions(+), 21 deletions(-) diff --git a/admin/views/settings/knowledgefile/knowledgefile.html b/admin/views/settings/knowledgefile/knowledgefile.html index 2e0240d2..01c1fbdc 100644 --- a/admin/views/settings/knowledgefile/knowledgefile.html +++ b/admin/views/settings/knowledgefile/knowledgefile.html @@ -22,7 +22,7 @@ {{ knowledgefile.id }} {{ knowledgefile.file_name }} {{ knowledgefile.user_display_name }} - {{ knowledgefile.upload_datetime | date:'yyyy-MM-dd HH:mm'}} + {{ knowledgefile.upload_datetime }} {{'SETTING.RESTORE' | translate}} diff --git a/admin/views/settings/meter/meter.html b/admin/views/settings/meter/meter.html index 99c613ea..6c8de40d 100644 --- a/admin/views/settings/meter/meter.html +++ b/admin/views/settings/meter/meter.html @@ -310,7 +310,7 @@ {{ offlinemeterfile.status }} - {{ offlinemeterfile.upload_datetime | date:'yyyy-MM-dd HH:mm'}} + {{ offlinemeterfile.upload_datetime }} 0: for row in rows: - upload_datetime = row[3] - upload_datetime = upload_datetime.replace(tzinfo=timezone.utc) + upload_datetime_local = row[3].replace(tzinfo=timezone.utc) + timedelta(minutes=timezone_offset) meta_result = {"id": row[0], "file_name": row[1], "uuid": row[2], - "upload_datetime": upload_datetime.timestamp() * 1000, + "upload_datetime": upload_datetime_local.strftime('%Y-%m-%dT%H:%M:%S'), "status": row[4]} result.append(meta_result) @@ -175,13 +178,16 @@ class OfflineMeterFileItem: raise falcon.HTTPError(falcon.HTTP_404, title='API.NOT_FOUND', description='API.OFFLINE_METER_FILE_NOT_FOUND') - upload_datetime = row[3] - upload_datetime = upload_datetime.replace(tzinfo=timezone.utc) + timezone_offset = int(config.utc_offset[1:3]) * 60 + int(config.utc_offset[4:6]) + if config.utc_offset[0] == '-': + timezone_offset = -timezone_offset + + upload_datetime_local = row[3].replace(tzinfo=timezone.utc) + timedelta(minutes=timezone_offset) result = {"id": row[0], "file_name": row[1], "uuid": row[2], - "upload_datetime": upload_datetime.timestamp() * 1000, + "upload_datetime": upload_datetime_local.strftime('%Y-%m-%dT%H:%M:%S'), "status": row[4]} resp.body = json.dumps(result) diff --git a/web/src/components/MyEMS/KnowledgeBase/KnowledgeBase.js b/web/src/components/MyEMS/KnowledgeBase/KnowledgeBase.js index 6989ed40..ad5ee021 100644 --- a/web/src/components/MyEMS/KnowledgeBase/KnowledgeBase.js +++ b/web/src/components/MyEMS/KnowledgeBase/KnowledgeBase.js @@ -64,10 +64,10 @@ const KnowledgeBase = ({ setRedirect, setRedirectUrl, t }) => { json.forEach((currentValue, index) => { let report = {} report['id'] = json[index]['id']; - report['calendar'] = { month: json[index]['upload_datetime_local'].substring(5, 7), - day: json[index]['upload_datetime_local'].substring(8, 10) }; + report['calendar'] = { month: json[index]['upload_datetime'].substring(5, 7), + day: json[index]['upload_datetime'].substring(8, 10) }; report['title'] = json[index]['file_name']; - report['additional'] = t('Created Datetime') + ': ' + json[index]['upload_datetime_local'] + '
' + + report['additional'] = t('Created Datetime') + ': ' + json[index]['upload_datetime'] + '
' + t('File Size') + ': ' + (json[index]['file_size_bytes']/(1024*1024)).toFixed(2) + ' MB'; report['to'] = '#'; report['file_bytes_base64'] = json[index]['file_bytes_base64'];