Solved

datetime string conversion

Posted on 2007-11-19
22
823 Views
Last Modified: 2013-12-17
I am trying to get the nowGMT into a string !  ... but the following script is not working out for me yet.

what am I doing wrong?

your time and efforts with this enquiry are much apprieated.
DateTime now = DateTime.Now;
DateTime nowGMT = now.ToUniversalTime();
 
string nowGMTstring = nowGMT.ToString();

Open in new window

0
Comment
Question by:amillyard
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 10
  • 5
  • 4
  • +1
22 Comments
 
LVL 23

Assisted Solution

by:Ashish Patel
Ashish Patel earned 240 total points
ID: 20311437
Try this
DateTime now = DateTime.Now();
Date nowGMT = now.ToUniversalTime();
string nowGMTstring = nowGMT.ToString();

Open in new window

0
 

Author Comment

by:amillyard
ID: 20311461
asvforce:

cannot do that change, as 'Date' is then not visible in the namespace.
0
 
LVL 11

Assisted Solution

by:Babycorn-Starfish
Babycorn-Starfish earned 170 total points
ID: 20311526
Just a typo i think in that last code snippet
DateTime now = DateTime.Now;
DateTime nowGMT = now.ToUniversalTime();
string nowGMTstring = nowGMT.ToString();
MessageBox.Show(nowGMTstring);

Open in new window

0
Forrester Webinar: xMatters Delivers 261% ROI

Guest speaker Dean Davison, Forrester Principal Consultant, explains how a Fortune 500 communication company using xMatters found these results: Achieved a 261% ROI, Experienced $753,280 in net present value benefits over 3 years and Reduced MTTR by 91% for tier 1 incidents.

 
LVL 11

Assisted Solution

by:Babycorn-Starfish
Babycorn-Starfish earned 170 total points
ID: 20311533
However,

i don't see any difference between your original code and that suggested by asvforce.

What were you getting assigned to nowGMTstring in your original code?
0
 

Author Comment

by:amillyard
ID: 20311553
Babycorn-Starfish:

Yes, I agree, no apparent difference -- except the 'Time' text removed.

DateTime now = DateTime.Now();
Date nowGMT = now.ToUniversalTime();   --- nowGMT is setup here and gets the current date/time data

"nowGMT" has all the data I that is required ... just need to convert that to a string format -- so I can make is part of a sql statement (string formatted).

string nowGMTstring = nowGMT.ToString();  -- this was my attempt to convert to string.
0
 
LVL 11

Assisted Solution

by:Babycorn-Starfish
Babycorn-Starfish earned 170 total points
ID: 20311651
Hmm,

well that code does work

>>string nowGMTstring = nowGMT.ToString();

Is it just that it's not giving it to you in a format you can use?, give an example of what you actually get assigned to nowGMTstring and how ytou would like it to appear.

0
 
LVL 23

Assisted Solution

by:Ashish Patel
Ashish Patel earned 240 total points
ID: 20311710
Try using this too. AS your code also worked for me, though please try the below one too.
string nowGMTstring = DateTime.Now().ToUniversalTime().ToString();

Open in new window

0
 

Author Comment

by:amillyard
ID: 20311721
nothing is being updated when posting the database update -- when I take out the nowGMT column -- db updates ok.

[DateTimeStamp] on the db is setup as a 'smalldatetime' in structure.
DateTime now = DateTime.Now;
DateTime nowGMT = now.ToUniversalTime();
string nowGMTstring = nowGMT.ToString();
 
string sql = "UPDATE [MasterAccounts] set [TelemarketingInUseLock]=" + StatusUpdate + "[DateTimeStamp]=" + nowGMT + " WHERE [MasterAccount_ID]=" + (String)Session["MasterAccount"];

Open in new window

0
 
LVL 11

Assisted Solution

by:Babycorn-Starfish
Babycorn-Starfish earned 170 total points
ID: 20311754
If this is your actual code is think the last line has an erorr in it in that your are passing nowGMT instead of nowGMTstring
0
 
LVL 23

Accepted Solution

by:
Ashish Patel earned 240 total points
ID: 20311761
Okay now try this and let me know what error you get if the update is now running good.


DateTime now = DateTime.Now;
DateTime nowGMT = now.ToUniversalTime();
string nowGMTstring = nowGMT.ToString();
 
string sql = "UPDATE [MasterAccounts] set [TelemarketingInUseLock]=" + StatusUpdate + ", [DateTimeStamp]='" + nowGMT + "' 
WHERE [MasterAccount_ID]=" + (String)Session["MasterAccount"];

Open in new window

0
 

Author Comment

by:amillyard
ID: 20311805
Babycorn-Starfish:

yes, it is actual code, I was trying with "nowGMT" and with "nowGMTstring" -- to see if there was any different (i.e. perhaps I did not have to convert to string).

asvforce:

have tried the code update as indicated -- db still refuing to update itself.

if I take out the "", [DateTimeStamp]='" + nowGMT +" for example -- db updates fine.
0
 
LVL 11

Assisted Solution

by:Babycorn-Starfish
Babycorn-Starfish earned 170 total points
ID: 20311874
try with a literal value in the format required, e.g. copy and paste from DB into your code and see whether it'll update that way.
0
 

Author Comment

by:amillyard
ID: 20311981
same issue -- even with literal as follows -- this is prevent a db update
string sql = "UPDATE [MasterAccounts] set [TelemarketingInUseLock]=" + StatusUpdate + "[DateTimeStamp]='19/11/2007 12:24:00' WHERE [MasterAccount_ID]=" + (String)Session["MasterAccount"];

Open in new window

0
 

Author Comment

by:amillyard
ID: 20311986
submitting this sql string -- works fine (but obviously no date/time updating going on)
string sql = "UPDATE [MasterAccounts] set [TelemarketingInUseLock]=" + StatusUpdate + " WHERE [MasterAccount_ID]=" + (String)Session["MasterAccount"];

Open in new window

0
 

Author Comment

by:amillyard
ID: 20311999
in a different table, I can update the date and time ok, (when creating a new record) as follows via stored procedure:   (but obviously no other string conversion / manipulation here)



DateTime now = DateTime.Now;
DateTime nowGMT = now.ToUniversalTime();
scCommand.Parameters.AddWithValue("@DateTimeStamp", nowGMT);

Open in new window

0
 
LVL 23

Assisted Solution

by:Ashish Patel
Ashish Patel earned 240 total points
ID: 20312311
Try changing the field from short date time to just date time and then do. If this fixes your issue then you can modify the update statement to take the date as short date time and then update.Let me know.
0
 
LVL 11

Assisted Solution

by:DotNetThinker
DotNetThinker earned 90 total points
ID: 20312712
try this (be sure to include a space before the [DateTimeStamp]):
string sql = "UPDATE [MasterAccounts] set [TelemarketingInUseLock]=" + StatusUpdate + " [DateTimeStamp]=cast('" + nowGMTstring + "' as shortdatetime) WHERE [MasterAccount_ID]=" + (String)Session["MasterAccount"];

Open in new window

0
 
LVL 11

Assisted Solution

by:DotNetThinker
DotNetThinker earned 90 total points
ID: 20312718
sorry, forgot the comma:


string sql = "UPDATE [MasterAccounts] set [TelemarketingInUseLock]=" + StatusUpdate + ", [DateTimeStamp]=cast('" + nowGMTstring + "' as shortdatetime) WHERE [MasterAccount_ID]=" + (String)Session["MasterAccount"];

Open in new window

0
 
LVL 11

Assisted Solution

by:DotNetThinker
DotNetThinker earned 90 total points
ID: 20312730
...may not need the cast if you include the space and comma.
0
 

Author Comment

by:amillyard
ID: 20317068
not working for me yet ... have restructured the scripting as follows:

webservice file:

    public class datetimeserver : System.Web.Services.WebService
    {
        [WebMethod]
        public DateTime GetServerTime()
        {
            return DateTime.Now;
        }
    }



.cs file


datetimeserver service = new datetimeserver();
DateTime serverTime = service.GetServerTime();

string sql = "UPDATE [MasterAccounts] set [RecordInUseLock]='" + StatusUpdate + "', [DateTimeStamp]='" + serverTime.ToString() + "' WHERE [MasterAccount_ID]=" + (String)Session["MasterAccount"];


cannot get this part to work yet -- ", [DateTimeStamp]='" + serverTime.ToString()

datetimestamp is a smalldatetime variable
0
 

Author Comment

by:amillyard
ID: 20318466
fyi -- I managed to the string version working -- had to change the datetimestamp to a string variable though.

problem is that I am getting to output results for the time part as follows:

3:22:40 AM  - when running scripts via the server
08:19:20   - locally (development platform) ran

what I would to achieve though is:

xx/xx/xxxx xx:xx:xx
day/month/year hour/min/secs

what I also would like to achieve is obviously for this to be updating as a smalldatetime variable in db table.
0
 

Author Comment

by:amillyard
ID: 20333536
Resolved this in the end using the following to correct the formatting issue:

string serverDateTime = serverTime.ToString("MMM dd, yyyy HH:mm:ss");
0

Featured Post

Major Incident Management Communications

Major incidents and IT service outages cost companies millions. Often the solution to minimizing damage is automated communication. Find out more in our Major Incident Management Communications infographic.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Need to sort columns in DataGridView 4 64
Get sourcecode path 14 61
Starting to use Git with Visual  Studio Online 1 70
Visual C# Windows Project - Clone Form 4 39
It seems a simple enough task, yet I see repeated questions asking how to do it: how to pass data between two forms. In this article, I will show you the different mechanisms available for you to do just that. This article is directed towards the .N…
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
Are you ready to implement Active Directory best practices without reading 300+ pages? You're in luck. In this webinar hosted by Skyport Systems, you gain insight into Microsoft's latest comprehensive guide, with tips on the best and easiest way…

734 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question