Formatting DateTimeField in Django
When saving timestamp in Django's DateTimeField
using auto_now_add
this way:
creation_timestamp = models.DateTimeField(auto_now_add=True)
the field is saved with miliseconds:
2018-11-20T15:58:44.767594-06:00
I want to format this to be displayed without miliseconds:
2018-11-20T15:58:44-06:00
But the only option I could come up with does not exactly shows what I need:
format="%Y.%m.%dT%H:%M:%S%z"
gives me 2018.11.20T15:58:44-0600
How do I format this field the way I need?
Alternatively I'd rather save DateTimeField
without milliseconds at all but does auto_now_add
allow to do this sort of thing?
python django django-models
add a comment |
When saving timestamp in Django's DateTimeField
using auto_now_add
this way:
creation_timestamp = models.DateTimeField(auto_now_add=True)
the field is saved with miliseconds:
2018-11-20T15:58:44.767594-06:00
I want to format this to be displayed without miliseconds:
2018-11-20T15:58:44-06:00
But the only option I could come up with does not exactly shows what I need:
format="%Y.%m.%dT%H:%M:%S%z"
gives me 2018.11.20T15:58:44-0600
How do I format this field the way I need?
Alternatively I'd rather save DateTimeField
without milliseconds at all but does auto_now_add
allow to do this sort of thing?
python django django-models
add a comment |
When saving timestamp in Django's DateTimeField
using auto_now_add
this way:
creation_timestamp = models.DateTimeField(auto_now_add=True)
the field is saved with miliseconds:
2018-11-20T15:58:44.767594-06:00
I want to format this to be displayed without miliseconds:
2018-11-20T15:58:44-06:00
But the only option I could come up with does not exactly shows what I need:
format="%Y.%m.%dT%H:%M:%S%z"
gives me 2018.11.20T15:58:44-0600
How do I format this field the way I need?
Alternatively I'd rather save DateTimeField
without milliseconds at all but does auto_now_add
allow to do this sort of thing?
python django django-models
When saving timestamp in Django's DateTimeField
using auto_now_add
this way:
creation_timestamp = models.DateTimeField(auto_now_add=True)
the field is saved with miliseconds:
2018-11-20T15:58:44.767594-06:00
I want to format this to be displayed without miliseconds:
2018-11-20T15:58:44-06:00
But the only option I could come up with does not exactly shows what I need:
format="%Y.%m.%dT%H:%M:%S%z"
gives me 2018.11.20T15:58:44-0600
How do I format this field the way I need?
Alternatively I'd rather save DateTimeField
without milliseconds at all but does auto_now_add
allow to do this sort of thing?
python django django-models
python django django-models
asked Nov 20 '18 at 22:17
Stan RedouteStan Redoute
361220
361220
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
You can override DateTimeField
's value_to_string
method and add the changes there. For example:
class CustomDateTimeField(models.DateTimeField):
def value_to_string(self, obj):
val = self.value_from_object(obj)
if val:
val.replace(microsecond=0)
return val.isoformat()
return ''
And use it in model:
created = CustomDateTimeField(auto_now_add=True)
add a comment |
If you want to format it on when displaying it, you can use: creation_timestamp.strftime("%Y-%m-%d%H:%M:%S")
You can also make DateTimeField
to save it in that format, but this would request a set of changes which will apply system wide:
In your settings file set the follwing:
DATETIME_FORMAT="%Y-%m-%d%H:%M:%S"
L10N=False
to make sore localization data doesn't take precedent when it comes to dates format.USE_TZ=False
But, consider the fact that this changes will apply by default to all date time objects from your project.
Key thing here is that I want to preserve timezone. But your answer contains only date and time
– Stan Redoute
Nov 20 '18 at 22:33
add a comment |
I think you will have to use isoformat. Look at that answer:
Show the : character in the timezone offset using datetime.strftime
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53402437%2fformatting-datetimefield-in-django%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can override DateTimeField
's value_to_string
method and add the changes there. For example:
class CustomDateTimeField(models.DateTimeField):
def value_to_string(self, obj):
val = self.value_from_object(obj)
if val:
val.replace(microsecond=0)
return val.isoformat()
return ''
And use it in model:
created = CustomDateTimeField(auto_now_add=True)
add a comment |
You can override DateTimeField
's value_to_string
method and add the changes there. For example:
class CustomDateTimeField(models.DateTimeField):
def value_to_string(self, obj):
val = self.value_from_object(obj)
if val:
val.replace(microsecond=0)
return val.isoformat()
return ''
And use it in model:
created = CustomDateTimeField(auto_now_add=True)
add a comment |
You can override DateTimeField
's value_to_string
method and add the changes there. For example:
class CustomDateTimeField(models.DateTimeField):
def value_to_string(self, obj):
val = self.value_from_object(obj)
if val:
val.replace(microsecond=0)
return val.isoformat()
return ''
And use it in model:
created = CustomDateTimeField(auto_now_add=True)
You can override DateTimeField
's value_to_string
method and add the changes there. For example:
class CustomDateTimeField(models.DateTimeField):
def value_to_string(self, obj):
val = self.value_from_object(obj)
if val:
val.replace(microsecond=0)
return val.isoformat()
return ''
And use it in model:
created = CustomDateTimeField(auto_now_add=True)
answered Nov 21 '18 at 4:11
ruddraruddra
15.1k32748
15.1k32748
add a comment |
add a comment |
If you want to format it on when displaying it, you can use: creation_timestamp.strftime("%Y-%m-%d%H:%M:%S")
You can also make DateTimeField
to save it in that format, but this would request a set of changes which will apply system wide:
In your settings file set the follwing:
DATETIME_FORMAT="%Y-%m-%d%H:%M:%S"
L10N=False
to make sore localization data doesn't take precedent when it comes to dates format.USE_TZ=False
But, consider the fact that this changes will apply by default to all date time objects from your project.
Key thing here is that I want to preserve timezone. But your answer contains only date and time
– Stan Redoute
Nov 20 '18 at 22:33
add a comment |
If you want to format it on when displaying it, you can use: creation_timestamp.strftime("%Y-%m-%d%H:%M:%S")
You can also make DateTimeField
to save it in that format, but this would request a set of changes which will apply system wide:
In your settings file set the follwing:
DATETIME_FORMAT="%Y-%m-%d%H:%M:%S"
L10N=False
to make sore localization data doesn't take precedent when it comes to dates format.USE_TZ=False
But, consider the fact that this changes will apply by default to all date time objects from your project.
Key thing here is that I want to preserve timezone. But your answer contains only date and time
– Stan Redoute
Nov 20 '18 at 22:33
add a comment |
If you want to format it on when displaying it, you can use: creation_timestamp.strftime("%Y-%m-%d%H:%M:%S")
You can also make DateTimeField
to save it in that format, but this would request a set of changes which will apply system wide:
In your settings file set the follwing:
DATETIME_FORMAT="%Y-%m-%d%H:%M:%S"
L10N=False
to make sore localization data doesn't take precedent when it comes to dates format.USE_TZ=False
But, consider the fact that this changes will apply by default to all date time objects from your project.
If you want to format it on when displaying it, you can use: creation_timestamp.strftime("%Y-%m-%d%H:%M:%S")
You can also make DateTimeField
to save it in that format, but this would request a set of changes which will apply system wide:
In your settings file set the follwing:
DATETIME_FORMAT="%Y-%m-%d%H:%M:%S"
L10N=False
to make sore localization data doesn't take precedent when it comes to dates format.USE_TZ=False
But, consider the fact that this changes will apply by default to all date time objects from your project.
answered Nov 20 '18 at 22:28
AlexAlex
48438
48438
Key thing here is that I want to preserve timezone. But your answer contains only date and time
– Stan Redoute
Nov 20 '18 at 22:33
add a comment |
Key thing here is that I want to preserve timezone. But your answer contains only date and time
– Stan Redoute
Nov 20 '18 at 22:33
Key thing here is that I want to preserve timezone. But your answer contains only date and time
– Stan Redoute
Nov 20 '18 at 22:33
Key thing here is that I want to preserve timezone. But your answer contains only date and time
– Stan Redoute
Nov 20 '18 at 22:33
add a comment |
I think you will have to use isoformat. Look at that answer:
Show the : character in the timezone offset using datetime.strftime
add a comment |
I think you will have to use isoformat. Look at that answer:
Show the : character in the timezone offset using datetime.strftime
add a comment |
I think you will have to use isoformat. Look at that answer:
Show the : character in the timezone offset using datetime.strftime
I think you will have to use isoformat. Look at that answer:
Show the : character in the timezone offset using datetime.strftime
answered Nov 20 '18 at 22:39
Tiago GomesTiago Gomes
6218
6218
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53402437%2fformatting-datetimefield-in-django%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown