相关疑难解决方法(0)

为f:convertDateTime设置默认时区

我使用JSF1.2,我的时区有点问题.

日历尊重我的时区并在数据库中保存正确的时间.当我使用ah显示它时:输出文本与af:convertDateTime它显示错误的日期(我认为使用默认时区).

我可以这样做:

<h:outputText value="#{atividade.atividade.dataCriacao.time}">
  <f:convertDateTime pattern="#{msg.formatoDataCalendario2}" timeZone="America/Sao_Paulo" />
</h:outputText>
Run Code Online (Sandbox Code Playgroud)

formatoDataCalendario2 = dd/MM/yyyy,HH:mm在messages.properties中.

我也可以将时区放在消息中,但我相信它有一些我可以使用的配置.

jsf timezone

36
推荐指数
1
解决办法
4万
查看次数

如何存储重复日期,记住夏令时

我在我的数据库中存储事件.我有'开始'和'结束'日期时间,'ticket_start'和'tickets_end'(用于门票销售实际开始/结束时 - 而不是实际事件的开始/结束).

到目前为止,我已经构建了一些方法来完成所有有趣的事情,例如在保存之前将日期/时间转换为GMT,然后返回到各自的时区进行显示.

我将时区存储在varchar字段中,其值为"America/New_York".

但是 - 现在我需要开始处理,如果用户想要允许重复事件.我以前做过,并没有那么重要,但从来没有涉及多个时区.

起初,我认为这没什么大不了的,但后来意识到 - 如果最初的开始日期是7月(例如),并且它每个月重复一年,在某些时候,夏令时将会成功因此,GMT的转换将以不同的方式改变时间.一个月,当转换为12:00时,它会将其更改为-5,然后,由于DST,它会将其更改为-4.

我目前的想法是,我将存储一个'dst'minitint(1),以确定是否在DST期间输入了开始/结束日期,然后在必要时制作一个方法将时间改变一小时.

但是 - 想想我会在这里问这里或许这是一个"正常",或者是一件我想不到的简单事情.

(cakephp 2.4.x)

php mysql datetime cakephp dst

35
推荐指数
1
解决办法
1万
查看次数

在构建日历应用程序时,我应该在数据库中存储日期或重复规则吗?

我正在构建一个日历网站(ASP.NET MVC)应用程序(想想outlook的简单版本),我想开始支持重复出现的日历事件(每月,每年等)

现在我正在存储我的实际日期,但我想弄清楚是否重复,是否有意义继续存储日期(有一些明显的截止),或者我应该存储重复选项并在运行中生成日期.

它让我思考Outlook,谷歌邮件等是如何做这个或任何其他支持重复日历项目的服​​务.

对此有什么建议吗?

c# icalendar recurrence calendar

29
推荐指数
3
解决办法
1万
查看次数

JSF convertDateTime呈现前一天

日期(作为日期时间类型)存储在我的数据库中,如下所示:31.10.2012
当我在UI中显示它时,它默认情况下呈现如下:2012-10-31
我使用<f:convertDateTime pattern="dd.MM.yyyy" />它转换它,并且意外地转向
30.10.2012

SimpleDateconverter,供给具有相同的日期和相同的格式字符串返回31.10.2012,如所预期.

我错过了什么?

谢谢

编辑:对于存储为Timestamp相同转换的日期产生正确的结果,所以我认为它与Date解释为确切的午夜有关,反过来可能被解释为属于2个不同的日期.但我仍然不知道在哪里定义行为以及什么是最好的解决方法.

java jsf date jsf-2

29
推荐指数
1
解决办法
2万
查看次数

Amazon Elastic Beanstalk - 更改时区

我正在通过AWS Elastic Beanstalk运行EC2实例.不幸的是,它有不正确的时区 - 比它应该提前2小时,因为时区设置为UTC.我需要的是GMT + 1.

有没有办法设置.ebextensions配置,以强制EC2实例使用正确的时区?

timezone amazon-web-services amazon-elastic-beanstalk

28
推荐指数
5
解决办法
2万
查看次数

如何在ToLocalTime()中确定本地

使用ToLocalTime()时,如何确定本地时间?是服务器或客户端的本地时间吗?我的假设是运行应用程序的服务器.

c# asp.net datetime

24
推荐指数
2
解决办法
1万
查看次数

过去的夏令时转换规则的JavaScript时区错误

2007年,我们改用夏令时的日子发生了变化.在此更改之前属于DST扩展范围内的任何日期都会在Chrome和Firefox中报告错误的时区偏移.这就像Firefox和Chrome没有注意到DST曾经有过不同日子的事实.

如果您运行以下脚本,它将报告240分钟的偏移量.这是不正确的,它应该报告300分钟.IE10正确地做到了这一点.有谁知道修复?

alert(new Date('11/04/2004').getTimezoneOffset());
Run Code Online (Sandbox Code Playgroud)

更新:

这是我刚刚攻击的一段有趣的代码(见下文).令人惊讶的是,除了IE,每个浏览器的大多数日期都有多远.将开始日期和结束日期与此进行比较:http://www.timeanddate.com/worldclock/timezone.html?n = 77&syear = 2000

我最后用我自己的getTimezoneOffset替换了Date的原型,它根据硬编码表计算它.这对我们有用,因为我们只在美国做生意.这是我能想象到的最糟糕的解决方案......

<!DOCTYPE html>
<html>
    <head>
        <title>Moment Test</title>
        <script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.0.0/moment.min.js"></script>
        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script>
var lastOffset = null;
var $tbody = null;
var endDate = new Date('01/01/2021');

function addDate(d) {
    if($tbody === null)
        $tbody = $('#dates');

    var offset = d.getTimezoneOffset();
    var s = '';
    if(lastOffset != offset) {
        if(lastOffset != null)
            s = '<tr style="background-color: red;">';
        lastOffset = offset;
    }
    else {
        s = '<tr>';
    }
    var m = …
Run Code Online (Sandbox Code Playgroud)

javascript firefox timezone google-chrome node.js

23
推荐指数
1
解决办法
9201
查看次数

时区战略

我正在构建一个MVC 3应用程序,其中用户可能不在同一时区,因此我的意图是以UTC格式存储所有内容,并在视图中将UTC转换为本地时间,并在提交时将本地时间转换为UTC.

做一些浏览虽然似乎没有很多好的解决方案.说实话,我有点期望一个属性可用于将UTC时间自动转换为本地时间,但似乎不存在.

我觉得只是努力将每个输入手动转换为UTC并手动将每个视图转换为本地时间显示将非常容易出错并导致难以检测到时间未转换为或未转换的错误.

关于如何将此作为一般策略的任何建议?

编辑 每个人似乎都非常坚持"如何获得客户端时区"这篇文章,正如我在其中一篇评论中提到的那样,并不是我关注的问题.我很好用一个用户设置确定他们的时区,所以假设我已经知道客户端时区是什么...这不能解决我的问题.

现在,在我渲染日期的每个视图上,我需要调用一个方法来从utc在本地时区渲染它.每次我向服务器发送提交日期时,我都需要将其从本地时区转换为UTC.如果我忘记这样做会有问题...提交的日期将是错误的或客户端报告和过滤器将是错误的.

我希望存在的是一种更自动化的方法,特别是因为视图模型在MVC 3中强类型我希望sum魔术能够至少自动在时区中呈现,如果不处理提交,就像日期格式或范围可以由属性控制.

所以喜欢

[DateRange]
Public DateTime MyDate
Run Code Online (Sandbox Code Playgroud)

我可以有类似的东西

[ConvertToUTC(offset)]
Public DateTime MyDate
Run Code Online (Sandbox Code Playgroud)

无论如何,我想我的唯一方法就是编写自定义数据注释以在时区中呈现它,并在MVC 3模型绑定器上覆盖,以便转换传入日期,除非我想在方法中包装任何日期呼叫.因此,除非有人有进一步的意见或建议,否则它将是这两个选项中的一个,我只是惊讶于已经不存在的事情.

如果我确实实施了解决方案,我一定会发布它.

编辑2 像这样的 http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx用于MVC 3视图和视图模型是我正在寻找的.

最终编辑 我将epignosisx的答案标记为正确,但也有一些评论要添加.我在这里发现了类似的东西: http: //dalldorf.com/blog/2011/06/mvc3-timezones-1/ 通过将时区放在cookie中为第2部分中需要的人提供时区的实现(链接如下,因为文章第一部分到第2部分的链接不起作用) http://dalldorf.com/blog/2011/09/mvc3-timezones-2/

重要的是要注意这些方法,你必须使用Editfor和Displayfor而不是像TextForFor这样的东西,因为只有EditFor和DisplayFor使用元数据提供程序来告诉MVC如何在模型上显示该类型的属性.如果直接在视图中访问模型值(@ Model.MyDate),则不会进行转换.

javascript c# timezone utc asp.net-mvc-3

22
推荐指数
1
解决办法
5440
查看次数

Django:如何让datetime对象知道它的创建时区?

我正在运行一个从远程服务器请求海潮数据的程序.在timedate基于我的机器的本地时区,这股潮流的数据被计算.我想使用这些本地日期和时间来创建一个datetime对象,然后我将保存在Django模型中.

datetime_obj = datetime(loc_year, loc_month, loc_date, loc_hour, loc_minute)
Run Code Online (Sandbox Code Playgroud)

在将datetime对象发布到Django之前,如何确保对象知道它是基于本地时区创建的?

我想,在发布之前我希望它看起来像这样:

datetime_obj = datetime(loc_year, loc_month, loc_date, loc_hour, loc_minute, loc_timezone)
Run Code Online (Sandbox Code Playgroud)

如何动态获取机器的本地时区?以及如何确保所有用户都将时间转换为他们自己的本地时区.

python django timezone datetime django-models

21
推荐指数
2
解决办法
3万
查看次数

处理PHP中的时区

PHP中的时区的一些问题已经在我脑海中浮现了一段时间,我想知道是否有更好的方法来处理它而不是我现在正在做的事情.

所有问题都围绕重新格式化数据库存储日期:

在处理必须支持多个时区(对于用户)的站点时,为了规范化存储时间戳的时区,我总是使用CURRENT_TIMESTAMP属性或NOW()函数将其与服务器时区一起存储.

这样我就不必考虑在输入时间戳时为PHP设置了什么时区(因为PHP时间函数是时区感知的).对于每个用户,根据他的偏好,我使用以下方法在我的引导程序文件中的某个位置设置时区:

date_default_timezone_set($timezone);
Run Code Online (Sandbox Code Playgroud)

当我想用php date()函数格式化日期时,由于MySQL目前以格式存储时间戳,因此必须进行某种形式的转换Y-m-d H:i:s.不考虑时区,你可以简单地运行:

$date = date($format,strtotime($dbTimestamp));
Run Code Online (Sandbox Code Playgroud)

这个问题是,date()并且strtotime()都是时区感知功能,这意味着如果PHP时区设置与服务器时区不同,时区偏移将应用两次(而不是我们想要的一次).

为了解决这个问题,我通常使用UNIX_TIMESTAMP()不能识别时区的函数来检索MySQL时间戳,允许我date()直接应用它 - 从而只应用一次时区偏移.

我不喜欢这种'hack',因为我不能像往常那样检索那些列,或者*用来获取所有列(有时它会极大地简化查询).此外,有时它根本不是一个使用选项UNIX_TIMESTAMP()(特别是在使用开源包时没有太多抽象的查询组合).

另一个问题是当存储时间戳时,当使用CURRENT_TIMESTAMPNOW()不是一个选项时 - 存储PHP生成的时间戳将使用我想避免的时区偏移来存储它.

我可能在这里遗漏了一些非常基本的东西,但到目前为止我还没有能够提出处理这些问题的通用解决方案,所以我不得不逐个处理它们.你的想法非常受欢迎

php database timezone

20
推荐指数
3
解决办法
1万
查看次数