Django如何为每个用户处理不同时区的情况?理想情况下,我希望在UTC时区(例如,在settings.py set TIME_ZONE=“UTC”中)运行服务器,这样所有的日期时间都作为UTC存储在数据库中。像这样的东西让我害怕,这也是为什么我更喜欢UTC的所有地方。
但是,要为每个用户存储一个时区,并且仍然使用标准的django日期时间格式和modelform是多么困难。我是否预期必须在任何地方编写日期处理代码,以便将日期转换为用户的时区并再次返回UTC?
我仍然在阅读django教程,但我知道在其他一些框架中处理用户时区会带来多大的痛苦,这些框架在任何地方都假定系统时区,所以我想现在就问
假设我们有以下代码来创建日期:
SimpleDateFormat sdf = new SimpleDateFormat( "dd/MM/yyyy" );
sdf.setTimeZone( TimeZone.getTimeZone( "UTC" ) ); // we know the date being parsed is UTC
Date bizDate = sdf.parse( "12/12/2015" ); // milliseconds: 1449878400000
log.info( "ms: {}", bizDate.
我试图迅速地将UTC日期转换为本地日期,但在将UTC日期转换为本地日期之后,我将该字符串以NSDate格式再次转换,但我总是以UTC日期格式转换,下面是我的代码
日期: UTC : 2016-07-20 18:30 +0000
我在本地日期尝试这个日期,请检查下面的代码:
let dateInUTC = NSDate()
let seconds: Int = NSTimeZone.systemTimeZone().secondsFromGMT
print(seconds)
let localDateFormatter: NSDateFormatt
我在ruby on rails工作。因为我对从当前时区到UTC的日期转换有疑问。
日期转换函数为
function date_conversion(date){
out = moment(date, "DD/MM/YYYY").format('YYYY-MM-DD')
var utc_time = moment.tz(out, zone).tz('UTC').format();
return utc_time;
}
这里参数日期let为"12/10/2019“,这是字符串格式,并让区域是”“亚洲/加尔各答”“。
执
存储日期时间的实用方法是什么,这样我就可以让用户查看/查询自己的本地时间的数据,同时保留有关原始日期时间的信息。
基本上,用户希望能够查询(从他们自己的本地时间)从各个时区的系统收集的数据。但偶尔,他们想知道数据是在原始系统中的18:00创建的。当来自世界不同地区的用户就同一事件进行交流时,它会有所帮助。
User1: What? We don't have any data for 20:00
User2: Dude, it says 20:00 right there on my screen.
User1: Wait, what timezone are you? What
我正在创建这样的日期:
ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC);
Date.from(now.toInstant());
我需要日期对象在utc中有当前时间,但是当我打印日期时,它会给我本地时间,而不是utc时间。我也尝试过:
OffsetDateTime now = OffsetDateTime.now(ZoneOffset.UTC);
Date date = Date.from(now.toInstant());
但是当我再次打印日期时,时间不在世界协调时。创建日期对象时是否做错了什么?为什么以上两个方法没有给我的日期
我脑子里想着这个简单的日期逻辑问题:
我知道用户的时区偏移量相对于UTC。
我的服务器在UTC。它现在知道时间了。
我如何计算‘昨天当地时间上午8点’的世界协调时当量?
在JS中,我尝试这样做,但它似乎不太有效。
var yesterday_am=moment(moment(new Date()).subtract(24,'hour')).format('YYYY-MM-DD'); // same local time previous day;
// when is 8am local time in utc?
var am=8 - (user.tz_offs
我找到了一种使用UTC时区创建日期的方法:
所以我可以创建"Sun Mar 25 02:00:00“,但是当我在Hibernate中插入这个日期时,它并没有写入它,似乎hibernate使用了一个我不能覆盖的不同时区。
我的问题是,如果我使用UTC时区,我也不能在Hibernate/H2数据库中插入这个日期:"Sun Mar 25 02:00:00“。
更新1:我正在尝试插入这些值:
Sun Mar 25 01:00:00 UTC 2012
Sun Mar 25 02:00:00 UTC 2012
Sun Mar 25 03:00:00 UTC 2012
Sun Mar 25
我有一个视图模型,其中一个属性是DateTime。我希望允许请求者在他们想要的任何时区发送DateTime。在我的一端,我想把那个日期-时间转换为UTC,如果时区信息没有随日期一起到达,就假设它是UTC。
或者,我也可以将发布的DateTime限制在UTC或者至少包含时区信息的东西上。
我的后端处理UTC中的所有日期,在UTC中返回它们,这也是它如何保存的。这个问题是关于接收‘客户’的输入,以及接受日期并将其转化为或确保它是UTC的最佳实践是什么。
这就是我现在所拥有的
public class MyViewModel
{
/// <summary>
/// Sta
我需要在用户时区显示日期和时间。但是我也需要在UTC中保存日期和时间,所以我的数据库保持一致。
我的cakephp应用程序配置如下:
config/app.php文件中的:
'Datasources' => [
'default' => [
...
'timezone' => 'UTC',
config/bootstrap.php文件中的:
/*
* Set server timezone to UTC. You can change it to another tim