将DateFormatString更改为显示11:59:59而不是12:00:00

时间:2013-04-03 19:52:53

标签: c# asp.net .net oracle

这是一个非常简单的问题,虽然我不知道如何最好地解决它。我有两个领域:

<asp:BoundField DataField="AUCTIONBEGINS" HeaderText="Auction Begins" DataFormatString="{0:d}" HtmlEncode="False" >
<asp:BoundField DataField="AUCTIONENDS" HeaderText="Auction Ends" DataFormatString="{0:d}" HtmlEncode="False" >

我的问题是,您分配给这两个字段的值会写入Oracle数据库,但我希望它们以下列方式编写:
for AUCTIONBEGINS ---&gt; 1/1/2013 12:00:00 AM 对于AUCTIONENDS ---&gt; 1/10/2013 11:59:59 PM

有没有一种简单的方法可以将其硬编码到DataFormatString中?或者我应该在写入数据库之前在服务器端执行此操作吗?

编辑*抱歉不太清楚。这两个字段都在最后的12:00:00 AM时间戳保存,我想在AUCTIONENDS DataField上隐式添加11:59:59 PM

3 个答案:

答案 0 :(得分:3)

如果您想要的是晚上11:59:59,我通常会做类似

的事情
    EndDate.AddDays(1).AddSeconds(-1);

这将为您提供当天的最后一天。

答案 1 :(得分:1)

您只需在日期中添加-1秒:

auctionEnd = auctionEnd.AddSeconds(-1);

例如,2013年1月10日上午12:00:00至2013年1月9日晚上11:59:59将会转变。

答案 2 :(得分:1)

如果您想要的是11:59:59 PM,对我而言,现在的最佳做法是使用:

  public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        LatLng sydney = new LatLng(-34, 151);
        mMap.addMarker(new MarkerOptions()
                .position(sydney)
                .title("Marker in Sydney"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
    }

代表:

EndDate.Add(DateTime.MaxValue.TimeOfDay)

enter image description here